使用 php 更改使用的 woocommerce 电子邮件模板(不自定义模板)
use php to change which woocommerce email template is used (NOT Customising templates)
电子邮件营销提供商 SendInBlue 向我提出了一个问题。
长话短说,SendInBlue 只允许您将默认的 woocommerce 电子邮件映射到在其软件中创建的模板。
我遇到的问题是我们使用了三个我无法映射的自定义模板。
我认为可能可行的一个解决方案是创建一个函数来更改我的自定义电子邮件,使用 woocommerce 新订单模板,然后将其映射到 SendInBlue 新订单模板。
这有可能吗?如果有人能够对此问题提供任何意见,我们将不胜感激。
谢谢
.
额外
我正在使用 SendinBlue Woocommerce 插件 - https://wordpress.org/plugins/woocommerce-sendinblue-newsletter-subscription/
这是管理页面的屏幕截图,您可以在其中将 Woocommerce 电子邮件映射到 SendinBlue 模板 https://ps.w.org/woocommerce-sendinblue-newsletter-subscription/trunk/screenshot-3.png?rev=1745315
WooCommerce 使用 wc_locate_template
过滤器加载他们的模板。
您可以使用此过滤器有条件地加载特定模板或 return 默认模板。这不会具体回答你的问题,但会给你一个如何解决这个问题的大体方向。
我 运行 在使用 WooCommerce 时试图在我的 WP 主题中使用 blade 模板时遇到了类似的问题。
/**
* Conditionally filter the email template WooCommerce chooses.
*
* @filter wc_locate_template
* @param {string} $template Full file path to original woo template
* @return {string} Full path to desired template to render
*/
function filter_wc_email_templates($template) {
// Psuedo code
$target = 'order-confirmation.php';
$replacement = 'shipping-confirmation.php';
$isTargetFile = strstr($template, $target) !== false;
if (! $isTargetFile) {
// if this is not the file we want to modify functionality for
// just retrun the default one
return $template;
} else {
// if this is the target file we want to replace
// return the full path to the file of the template we want to use
return getThemeTemplatePath() . '/<path to WooCommerce in your theme>/' . $replacement;
}
});
add_filter('wc_locate_template', 'filter_wc_email_templates');
电子邮件营销提供商 SendInBlue 向我提出了一个问题。
长话短说,SendInBlue 只允许您将默认的 woocommerce 电子邮件映射到在其软件中创建的模板。
我遇到的问题是我们使用了三个我无法映射的自定义模板。
我认为可能可行的一个解决方案是创建一个函数来更改我的自定义电子邮件,使用 woocommerce 新订单模板,然后将其映射到 SendInBlue 新订单模板。
这有可能吗?如果有人能够对此问题提供任何意见,我们将不胜感激。
谢谢
.
额外
我正在使用 SendinBlue Woocommerce 插件 - https://wordpress.org/plugins/woocommerce-sendinblue-newsletter-subscription/
这是管理页面的屏幕截图,您可以在其中将 Woocommerce 电子邮件映射到 SendinBlue 模板 https://ps.w.org/woocommerce-sendinblue-newsletter-subscription/trunk/screenshot-3.png?rev=1745315
WooCommerce 使用 wc_locate_template
过滤器加载他们的模板。
您可以使用此过滤器有条件地加载特定模板或 return 默认模板。这不会具体回答你的问题,但会给你一个如何解决这个问题的大体方向。
我 运行 在使用 WooCommerce 时试图在我的 WP 主题中使用 blade 模板时遇到了类似的问题。
/**
* Conditionally filter the email template WooCommerce chooses.
*
* @filter wc_locate_template
* @param {string} $template Full file path to original woo template
* @return {string} Full path to desired template to render
*/
function filter_wc_email_templates($template) {
// Psuedo code
$target = 'order-confirmation.php';
$replacement = 'shipping-confirmation.php';
$isTargetFile = strstr($template, $target) !== false;
if (! $isTargetFile) {
// if this is not the file we want to modify functionality for
// just retrun the default one
return $template;
} else {
// if this is the target file we want to replace
// return the full path to the file of the template we want to use
return getThemeTemplatePath() . '/<path to WooCommerce in your theme>/' . $replacement;
}
});
add_filter('wc_locate_template', 'filter_wc_email_templates');