Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WooCommerce:如何在客户保留订单邮件中隐藏价格,而不是在其他邮件中隐藏价格?_Woocommerce_Hook Woocommerce - Fatal编程技术网

WooCommerce:如何在客户保留订单邮件中隐藏价格,而不是在其他邮件中隐藏价格?

WooCommerce:如何在客户保留订单邮件中隐藏价格,而不是在其他邮件中隐藏价格?,woocommerce,hook-woocommerce,Woocommerce,Hook Woocommerce,我需要定制WooCommerce,并在客户保留订单邮件中隐藏所有定价信息,但不在其他邮件中 我之前已经将邮件模板复制到/mytheme/woocommerce/emails,因为它们已经被修改,所以我复制了 email-order-items.php和 email-order-details.php 到 email-order-items-noprice.php和 email-order-details-noprice.php …并将其修改为不显示价格 现在我相信我必须更改customer-on

我需要定制WooCommerce,并在客户保留订单邮件中隐藏所有定价信息,但不在其他邮件中

我之前已经将邮件模板复制到/mytheme/woocommerce/emails,因为它们已经被修改,所以我复制了

email-order-items.php和 email-order-details.php

email-order-items-noprice.php和 email-order-details-noprice.php

…并将其修改为不显示价格

现在我相信我必须更改customer-on-hold-order.php来调用我的新noprice文件

在这个文件中我可以看到

do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
我希望我能把线路改成

do_action( 'woocommerce_email_order_details_noprice', $order, $sent_to_admin, $plain_text, $email );
…但是什么也没发生。这可能是因为钩子“woocommerce\u email\u order\u details\u noprice”不存在

我必须做什么来创建这个钩子,在哪里? 还是有更好的解决办法


非常感谢

只需执行以下操作即可达到您的要求-

  • 首先复制
    email order details.php
    email order items.php
    模板,就像您已经做的那样。但是不需要重命名它

  • 现在,在名为
    email order details.php的模板中,替换如下-


  • 啊,好的,您正在检查订单状态。好主意如果($order->get_status()!=='on hold')。。。但是,另一封关于新订单的邮件呢?商店管理员收到的通知他新订单的邮件?因此,我相信,这也有“暂停”的状态,并且会有隐藏的价格,但这里必须显示价格。你怎么看?然后只需修改逻辑为-
    if($sent\u to\u admin){//add price block}elseif(!$sent\u to\u admin&&&$order->get\u status()!='on hold'){//add price block}
    用echo$order->get\u status()检查:两封邮件都有“on hold”。将检查您的新解决方案。只需实现上面注释的逻辑即可。