php - 仅为 Woocommerce 中的特定产品启用“运送到其他地址”
问题描述
我想为大多数产品禁用(隐藏)“运送到不同地址”,并仅对特定(几个)产品启用它。我用过add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');
,但它禁用了所有产品的“运送到不同地址”部分。
解决方案
您需要与其他问题类似的代码:
add_filter( 'woocommerce_cart_needs_shipping_address', 'disable_checkout_shipping_address');
function disable_checkout_shipping_address( $needs_shipping_address ) {
$products_ids = array(793, 796);
$found = $others_found = false;
foreach ( WC()->cart->get_cart() as $cart_item ){
if (in_array( $cart_item['data']->get_id(), $products_ids ) ){
$found = true;
} else {
$others_found = true;
}
}
if( $found && ! $others_found )
$needs_shipping_address = true;
else
$needs_shipping_address = false;
return $needs_shipping_address;
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。
推荐阅读
- linux - find: '/proc/5110': 没有这样的文件或目录
- angular - Angular Google Maps 设置标记动画
- pine-script - 将脊椎脚本 (tradingview) 翻译成 mql 指标 (meta trader 4)
- sql - 如何根据日期返回最后两个值
- perl - 为什么有些变量需要初始化而有些变量不需要在同一个脚本中?
- sql - 具有组合或单个实体的多列的非聚集索引
- excel - Loadpicture 给出运行时错误 481:无效图片在恢复前工作正常
- python - 不和谐派表情符号
- python - 如何循环一个turtle.write 语句?
- python-3.x - 字典值未更新