【问题标题】:Show wc_add_notice only one time仅显示一次 wc_add_notice
【发布时间】:2017-05-15 12:31:33
【问题描述】:

我有这个代码

add_action( 'woocommerce_add_to_cart_validation', 'custom_add_to_cart_validation', 10, 3 );
function custom_add_to_cart_validation( $passed, $product_id, $quantity) {
    $_product = wc_get_product( $product_id );
    $quantity_total = (array_sum($_POST['quantity']));
    // echo $quantity_total;

    if ($quantity_total % 2 != 0) {
        wc_add_notice( __( 'Multiple of 2 required quantity.', 'woocommerce' ), 'error' );
        $passed = false;
    }
    else{
        $passed = true;
    }var_dump($quantity_total);

    return $passed;
}

我有一个分组产品,其中每个产品都有很多项目,如果条件属实,我会收到此通知..但我只想显示一次。现在显示每个输入的错误消息..来自每个产品的页面,我想要的是只显示一次。

【问题讨论】:

  • wc_add_notice();之前使用wc_clear_notices();
  • @RaunakGupta 你是个天才!将您的解决方案作为答案给您 +1。

标签: php wordpress woocommerce product hook-woocommerce


【解决方案1】:

如果你想删除所有以前的消息,那么你必须使用 wc_clear_notices()wc_add_notice() 之前。

所以你的代码应该是这样的:

add_action('woocommerce_add_to_cart_validation', 'custom_add_to_cart_validation', 10, 3);

function custom_add_to_cart_validation($passed, $product_id, $quantity)
{
    //...
    //...
    if ($quantity_total % 2 != 0)
    {
        wc_clear_notices(); //<--- check this line.
        wc_add_notice(__('Multiple of 2 required quantity.', 'woocommerce'), 'error');
        $passed = false;
    }
    //...
    //...
}

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多