我使用以下钩子
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个在...
如果我要检查产品类型的功能条件“来得太晚”。
我该如何解决?
答案 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 );