问题描述
我目前需要出售带有子服务的服务作为选择:
如果用户选中产品页面中的复选框,则该选项将添加到购物车页面,结帐页面,感谢页面,电子邮件等...
我的问题是我实际上可以在购物车和结帐表的产品行中更新初始产品价格,但是我需要:
1:将附加服务(该选项)作为单独的行插入c 审查审核订单表和购物车总计表中>;
2:在产品行中显示初始产品价格,并且仅在这两个表中加上加期权价格的总和。
我真的很困在这里,任何帮助都会很棒。谢谢
解决方法
好的, 因为解决方案很简单:
1:在“管理”标签中添加产品下拉菜单,以允许用户选择链接的产品作为产品选项,并将其ID注册为产品元;
2:使用woocommerce_add_to_cart_validation从产品页面拦截选项复选框值,并将产品选项从初始产品元添加到购物车:
add_action( 'woocommerce_add_to_cart_validation','my_cart_validation' );
function my_cart_validation(){
if( isset( $_POST['my-service-option'] ) ){
WC()->cart->add_to_cart( get_post_meta( $_POST['add-to-cart'],'service-option',true ) );
}
}
3:如果不应将可选服务显示在shop循环中,只需将其从WC Query中删除:
add_action( 'woocommerce_product_query','remove_optional_services' );
function remove_optional_services( $q ){
$not_in = $q->get('post__not_in' );
array_push( $not_in,75 ); // you can grab your product ids from an option or whatever fits your needs
$q->set('post__not_in',$not_in);
}
好处是您可以使用此方法简单地控制税金和价格。