我似乎找不到预览 Woocommerce 不同电子邮件模板的选项。在 Woocommerce 的管理部分,有一个链接可以预览客户的“已收到订单”电子邮件。但我想编辑和预览发送给管理员的“已收到订单”电子邮件。
我已经尝试过 WP Better 电子邮件插件和 WP 电子邮件模板插件,但它们没有为 Woocommerce 的所有不同电子邮件提供预览按钮。
不能通过下订单来预览电子邮件模板,因为下订单和收到管理员电子邮件之间有十分钟的延迟。
我似乎找不到预览 Woocommerce 不同电子邮件模板的选项。在 Woocommerce 的管理部分,有一个链接可以预览客户的“已收到订单”电子邮件。但我想编辑和预览发送给管理员的“已收到订单”电子邮件。
我已经尝试过 WP Better 电子邮件插件和 WP 电子邮件模板插件,但它们没有为 Woocommerce 的所有不同电子邮件提供预览按钮。
不能通过下订单来预览电子邮件模板,因为下订单和收到管理员电子邮件之间有十分钟的延迟。
我最终创建了一个通过 admin-ajax.php 脚本执行的小函数,例如
https://example.org/wp-admin/admin-ajax.php?action=previewemail&file=emails/customer-processing-order.php&order=180
功能:
$order
中指定的 id 的顺序order
file
。这是代码(您必须将其添加到新插件或某些现有 php 中):
/**
* Open a preview e-mail.
*
* @return null
*/
function preview_email()
{
global $order;
$filename = $_GET['file'];
$orderId = $_GET['order'];
$order = new WC_Order($orderId);
include $filename;
return null;
}
add_action('wp_ajax_previewemail', 'preview_email');
使用内置 woo 函数修改上述答案的版本。好处是它会同时查看您的主题和默认插件模板路径。
/**
* Open a preview e-mail.
*
* @return null
*/
function previewEmail() {
if (is_admin()) {
$default_path = WC()->plugin_path() . '/templates/';
$files = scandir($default_path . 'emails');
$exclude = array( '.', '..', 'email-header.php', 'email-footer.php','plain' );
$list = array_diff($files,$exclude);
?><form method="get" action="<?php echo site_url(); ?>/wp-admin/admin-ajax.php">
<input type="hidden" name="order" value="2055">
<input type="hidden" name="action" value="previewemail">
<select name="file">
<?php
foreach( $list as $item ){ ?>
<option value="<?php echo $item; ?>"><?php echo str_replace('.php', '', $item); ?></option>
<?php } ?>
</select><input type="submit" value="Go"></form><?php
global $order;
$order = new WC_Order($_GET['order']);
wc_get_template( 'emails/email-header.php', array( 'order' => $order ) );
wc_get_template( 'emails/'.$_GET['file'], array( 'order' => $order ) );
wc_get_template( 'emails/email-footer.php', array( 'order' => $order ) );
}
return null;
}
add_action('wp_ajax_previewemail', 'previewEmail');
我提出了一个可能满足您需求的解决方案(插件),尽管它仅适用于默认的可用电子邮件模板,这是由于 WooCommerce 管理电子邮件的性质所致。Github