根据特定的运输方式隐藏 WooCommerce 订单上的送货地址

时间:2021-03-10 10:07:10

标签: php wordpress woocommerce orders shipping-method

我有两种统一费率(统一费率:1 和统一费率:2)我想在选择“统一费率:2”送货方式时隐藏 WooCommerce 中的“送货地址”感谢页面。

试图使用基于 WooCommerce - Hide shipping address when local pickup is chosen on thankyou page 的东西,但我卡住了。

谁能提供一些如何实现这一目标的提示?

Woocommerce 5.1.0

1 个答案:

答案 0 :(得分:1)

更新

您可以使用这个简单的代码片段,根据特定定义的送货方式在订单中隐藏送货地址:

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