【发布时间】:2019-05-04 06:13:27
【问题描述】:
在 Woocommerce 结帐部分,我正在尝试添加一个用于添加其他产品的复选框。
我有一段工作代码添加费用并在单击复选框时更新购物车,但我希望它添加产品而不是附加费:
function cart_custom_fee( $cart ) {
if( !$_POST || ( is_admin() && ! is_ajax() ) ) {
return;
}
if( isset( $_POST['post_data'] ) ) {
parse_str( $_POST['post_data'], $post_data );
} else {
$post_data = $_POST;
}
if( isset( $post_data['add_test_item'] ) ) { // This is the checkbox name
WC()->cart->add_fee('Test Item', 35);
}
}
add_action( 'woocommerce_cart_calculate_fees', 'cart_custom_fee' );
这是复选框的代码
<script>
jQuery(document).ready(function(){
jQuery('#cp-checkbox').click(function() {
jQuery('body').trigger('update_checkout');
});
});
</script>
而且代码有效……
现在,我尝试更改代码以添加产品:
function add_item_checkout( $cart ) {
if( !$_POST || ( is_admin() && ! is_ajax() ) ) {
return;
}
if( isset( $_POST['post_data'] ) ) {
parse_str( $_POST['post_data'], $post_data );
} else {
$post_data = $_POST;
}
if( isset( $post_data['add_test_item'] ) ) { // This is the checkbox name
WC()->cart->add_to_cart( 123 ); // 123 is the product ID
}
}
add_action( 'woocommerce_calculate_totals', 'add_item_checkout' );
但它没有用。任何帮助将不胜感激。
【问题讨论】:
标签: php jquery ajax wordpress woocommerce