根据特定的送货方式隐藏 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.