我想创建一个复选框,需要先单击它,然后才能将产品添加到购物车。
add_action( 'woocommerce_before_add_to_cart_button', 'add_privacy_policy', 9 );
function add_privacy_policy() {
woocommerce_form_field( 'privacy_policy', array(
'type' => 'checkbox',
'class' => array('form-row privacy'),
'label_class' => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
'input_class' => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
'required' => true,
'label' => 'I\'ve read and accept the <a href="#">Privacy Policy</a>',
));
}
这是我到目前为止所拥有的。现在,我需要创建一个操作,该操作在单击“添加到购物车”按钮之后但实际上没有将产品放入购物车之前触发。如果该框未打勾,我要使其打勾,以便输出错误,并且该产品不会添加到购物车中。
由于我并不真正了解woocommerce,所以我想知道是否有这样的动作,如果没有,那么如何产生相同的效果。
答案 0 :(得分:1)
只需添加以下代码段-
function add_privacy_policy_validation( $passed ) {
if ( !isset( $_REQUEST['privacy_policy'] ) ) {
wc_add_notice( __( 'Please accept privacy policy', 'woocommerce' ), 'error' );
$passed = false;
}
return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'add_privacy_policy_validation', 99 );