php 在WooCommerce电子邮件通知中隐藏本地取件的送货地址

cig3rfwq  于 2023-01-12  发布在  PHP
关注(0)|答案(1)|浏览(157)

如果选择“本地取件”,如何隐藏客户处理电子邮件中的“送货地址”信息部分?
我不知道如何提供代码。

jk9hmnmh

jk9hmnmh1#

    • 可以***(请参阅本页底部的更新)*...

overriding WooCommerce templates(将WooCommerce插件**templates文件夹复制到您的活动子主题或主题,重命名为woocommerce)。
be sure to read the related docs第一个
一旦以上正确完成,您必须编辑2模板位于该
woocommerce文件夹内您的活动子主题或主题。该文件位于:
1.
* 一个月三个月一次
一个月四个月一次*〉一个月五个月一次一个月六个月一次
替换第19行中的模板代码

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

?><table id="addresses" cellspacing="0" cellpadding="0" style="width: 100%; vertical-align: top;" border="0">
    <tr>
        <td class="td" style="text-align:left; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;" valign="top" width="50%">
            <h3><?php _e( 'Billing address', 'woocommerce' ); ?></h3>

            <p class="text"><?php echo $order->get_formatted_billing_address(); ?></p>
        </td>
        <?php // ======================> Here begins the customization

            $shipping_local_pickup = false;
            if ( $items_totals = $order->get_order_item_totals() ) {
                foreach ( $items_totals as $items_total ) {
                    if ( $items_total['value'] == 'Local Pickup' && !$shipping_local_pickup ) $shipping_local_pickup = true;
                }
            }
            // End

            if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && ( $shipping = $order->get_formatted_shipping_address() ) && !$shipping_local_pickup ) : ?>
            <td class="td" style="text-align:left; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;" valign="top" width="50%">
                <h3><?php _e( 'Shipping address', 'woocommerce' ); ?></h3>

                <p class="text"><?php echo $shipping; ?></p>
            </td>
        <?php endif; ?>
    </tr>
</table>

1.* * 一个月七天一次***一个月八天一次***〉一个月九天一次***一个月十天一次***〉一个月十一天一次一个月十二天一次
替换第19行中的模板代码

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

echo "\n" . strtoupper( __( 'Billing address', 'woocommerce' ) ) . "\n\n";
echo preg_replace( '#<br\s*/?>#i', "\n", $order->get_formatted_billing_address() ) . "\n";

 // ======================> Here begins the customization

$shipping_local_pickup = false;
if ( $items_totals = $order->get_order_item_totals() ) {
    foreach ( $items_totals as $items_total ) {
        if ( $items_total['value'] == 'Local Pickup' && !$shipping_local_pickup ) $shipping_local_pickup = true;
    }
} // End

if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && ( $shipping = $order->get_formatted_shipping_address() ) && !$shipping_local_pickup ) {
    echo "\n" . strtoupper( __( 'Shipping address', 'woocommerce' ) ) . "\n\n";
    echo preg_replace( '#<br\s*/?>#i', "\n", $shipping ) . "\n";
}

我刚刚添加了此功能,以检测订单中何时使用Local Pickup

$shipping_local_pickup = false;
if ( $items_totals = $order->get_order_item_totals() ) {
    foreach ( $items_totals as $items_total ) {
        if ( $items_total['value'] == 'Local Pickup' && !$shipping_local_pickup ) $shipping_local_pickup = true;
    }
}

在现有的**if**语句中停止显示送货地址(对于本地提货):

&& !$shipping_local_pickup
    • 更新:可以使用更紧凑的代码**,使用**WC_Abstract_Order类-has_shipping_method()**方法,方法如下:
$shipping_local_pickup = false;
if ( $order->has_shipping_method( 'local_pickup' ) )
    $shipping_local_pickup = true;

在现有的**if**语句中停止显示送货地址(对于本地提货):

&& !$shipping_local_pickup

参考文献:

相关问题