如何覆盖电子邮件文本新客户订单?

时间:2016-03-31 作者:Tony

我试图在函数中将管理员电子邮件模板文本“New customer order”改写为“New order”。php,但我在谷歌上找不到任何信息。谁能给我一个提示!:)

2 个回复
SO网友:mtt_g

覆盖WooCommerce电子邮件的最简单方法是复制WooCommerce/模板/电子邮件/管理新订单。php到yourtheme/woocommerce/emails/admin新订单。并对模板的版本进行任何更改。这将确保您所做的任何更改不会在任何后续升级过程中丢失。

电子邮件主题行中显示的文本通过GUI控制,如果您希望始终保持“新订单”文本不变,则可能需要更改。

但是,如果您真的想通过函数更改标题文本。php文件,您可能会挂接到“woocommerce\\u email\\u header”:

function action_woocommerce_email_header( $email_heading ) { 
    // Change the email heading in here.
}; 
add_action( \'woocommerce_email_header\', \'action_woocommerce_email_header\', 10, 1 );
$email\\u标题将是一个字符串值,包含电子邮件标题的完整HTML标记,它将包含文本“New customer order”,因此您可以执行简单的str\\u替换,搜索$email\\u标题中的“New customer order”,然后将其替换为“New order”。例如:

function action_woocommerce_email_header( $email_heading ) { 
    $new_email_heading = str_replace( \'New customer order\', \'New order\', $email_heading );
    return $new_email_heading;
}; 
add_action( \'woocommerce_email_header\', \'action_woocommerce_email_header\', 10, 1 );
这只是一个非常粗糙的例子,例如,您需要满足没有“新客户订单”的情况。希望它能让你沿着正确的轨道开始。

SO网友:Jonas Lundman

您可以对此使用筛选器:

/*
 * goes in theme functions.php or a custom plugin
 *
 *   woocommerce_email_heading_new_order
 *   woocommerce_email_heading_customer_processing_order
 *   woocommerce_email_heading_customer_completed_order
 *   woocommerce_email_heading_customer_invoice
 *   woocommerce_email_heading_customer_note
 *   woocommerce_email_heading_low_stock
 *   woocommerce_email_heading_no_stock
 *   woocommerce_email_heading_backorder
 *   woocommerce_email_heading_customer_new_account
 *   woocommerce_email_heading_customer_invoice_paid
 *
 * USAGE: add_filter(\'woocommerce_email_heading_new_order\', \'my_filter_email_heading_new_order\', 10, 2);
 *
 **/


function my_filter_email_heading_new_order($email_heading, $email){

    /* get info if needed */
    $order_id = $email->get_id();

    /* Translated version *
    $email_heading = sprintf( __(\'Order #%1$s\', \'twenty-sixteen\'), $order_id );

    /* simple version */
    $email_heading = \'Hello world\';

    return $email_heading;
}
add_filter(\'woocommerce_email_heading_new_order\', \'my_filter_email_heading_new_order\', 10, 2);

相关推荐

如何将外部变量传递给wp_new_User_Notify_Email过滤器?

我们正在尝试自定义新用户在我们的网站上注册时收到的默认电子邮件。为此,我们使用WP4.9.0中添加的wp\\u new\\u user\\u notification\\u email筛选器对于我们的功能。php文件不要凌乱,我们在“templates/email\\u welcome.php”中有电子邮件模板。我们需要加载此文件来构建$message变量,但返回的内容始终为空。下面是我们在子主题函数中添加的内容。php// ========================================