根据特定的送货方式隐藏 WooCommerce 订单上的送货地址
Hide shipping address on WooCommerce orders based on specific shipping methods
我有两种固定费率(固定 rate:1 和固定 rate:2)我想在“固定 rate:2”运送时隐藏 WooCommerce 感谢页面中的“送货地址”选择方法。
尝试使用基于 的东西,但我卡住了。
任何人都可以提供一些如何实现这一点的提示吗?
Woocommerce 5.1.0
已更新
您可以使用这个简单的代码片段,根据特定定义的送货方式隐藏订单的送货地址:
add_filter( 'woocommerce_order_needs_shipping_address', 'filter_order_needs_shipping_address', 10, );
function filter_order_needs_shipping_address( $needs_address, $hide, $order ) {
// Here set your shipping method instance Ids
$targeted_instances_ids = array( 1, 2 );
// Loop through "shipping" order items
foreach ( $order->get_items('shipping') as $item ) {
if( in_array( $item->get_instance_id(), $targeted_instances_ids ) ) {
return false;
}
}
return $needs_address;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
注意:运输实例ID是运输方式费率ID中:
后面的数字。
因此,例如 flat rate:2
,运输实例 ID 为 2
.
我有两种固定费率(固定 rate:1 和固定 rate:2)我想在“固定 rate:2”运送时隐藏 WooCommerce 感谢页面中的“送货地址”选择方法。
尝试使用基于
任何人都可以提供一些如何实现这一点的提示吗?
Woocommerce 5.1.0
已更新
您可以使用这个简单的代码片段,根据特定定义的送货方式隐藏订单的送货地址:
add_filter( 'woocommerce_order_needs_shipping_address', 'filter_order_needs_shipping_address', 10, );
function filter_order_needs_shipping_address( $needs_address, $hide, $order ) {
// Here set your shipping method instance Ids
$targeted_instances_ids = array( 1, 2 );
// Loop through "shipping" order items
foreach ( $order->get_items('shipping') as $item ) {
if( in_array( $item->get_instance_id(), $targeted_instances_ids ) ) {
return false;
}
}
return $needs_address;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
注意:运输实例ID是运输方式费率ID中:
后面的数字。
因此,例如 flat rate:2
,运输实例 ID 为 2
.