woocommerce_add_to_cart_validation挂钩适用于可变产品,但不适用于单个产品

时间:2019-11-25 12:30:18

标签: woocommerce hook

我使用以下钩子

function dvpi_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id, $variations ) {
    return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'dvpi_add_to_cart_validation', 10, 5 );

对于“变量”类型的产品,此方法有效


问题是,如果产品的类型为“单一”,则也会执行此挂接,但需要3个参数,否则我将收到此错误消息:

function dvpi_add_to_cart_validation( $passed, $product_id, $quantity ) {
    return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'dvpi_add_to_cart_validation', 10, 3 );
  

致命错误:未捕获ArgumentCountError:函数dvpi_add_to_cart_validation()的参数太少,第3行在/data/sites/web/.../wp-includes/class-wp-hook.php中传递了3个参数,正好是5个在...

如果我要检查产品类型的功能条件“来得太晚”。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您可以将功能参数更改为以下可选参数,并检查单个产品和其他产品是否有效。

function dvpi_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id = 0, $variations = null) {
    return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'dvpi_add_to_cart_validation', 10, 5 );