我的网站上有一些产品类别,客户可以从我的商店收集,所以我需要添加本地取货作为一种运输方式。我添加了本地取货,但它在结账页面上显示了一个复选框,供客户选择正常发货或本地取货。我需要的是,当客户将产品添加到“x”类别的购物车时,向他们显示正常运费和本地提货,以便他们可以选择对他们来说方便的产品,以及仅具有正常运费的其他产品。我不想显示其他类别的本地皮卡。
仅显示特定WooCommerce产品类别的“本地提货”发货方式
1 个回复
最合适的回答,由SO网友:LoicTheAztec 整理而成
以下遗嘱only show cart中特定产品类别的“本地提货”装运方法:
add_action( \'woocommerce_package_rates\',\'show_hide_local_pickup_shipping_methods\', 10, 2 );
function show_hide_local_pickup_shipping_methods( $rates, $package ) {
// HERE BELOW your product categories in the array
$categories = array( \'t-shirts\', \'hat\' );
$term_found = false;
// Loop through cart items
foreach( $package[\'contents\'] as $cart_item ){
if( has_term( $categories, \'product_cat\', $cart_item[\'product_id\'] ) ) {
$term_found = true;
break;
}
}
// Loop through shipping methods
foreach( $rates as $rate_key => $rate ) {
if( \'local_pickup\' === $rate->method_id && ! $term_found ) {
unset($rates[$rate_key]);
}
}
return $rates;
}
代码进入函数。活动子主题(或活动主题)的php文件。已测试并正常工作。Note: 您可能需要刷新配送方式、清空购物车并转到配送设置/然后禁用/保存并重新启用/保存任何配送方式。