wordpress woocommerce -包括客户完成订单电子邮件模板插件

utugiqy6  于 2022-12-22  发布在  WordPress
关注(0)|答案(1)|浏览(167)

我试着通过我自己构建的一个自定义插件覆盖woocommerce customer-completed-order.php模板,最方便的是在插件中包含自定义邮件模板,这样客户就不需要将模板复制到子主题中。
到目前为止,我有(基于互联网研究):

function intercept_wc_template( $template, $template_name, $template_path ) {
if ( strpos($template_name,'customer-completed-order.php' ) ) {
$template = trailingslashit( plugin_dir_path( __FILE__ ) ) . 'template/woocommerce/customer-completed-order.php';
}
return $template;
}
add_filter('woocommerce_locate_template', 'intercept_wc_template', 20, 3);

我试着改变优先级,把优先级改成9而不是20。但是,这似乎也无济于事。
任何帮助都将不胜感激,
问候你,基斯

z9smfwbn

z9smfwbn1#

你应该试试这个:

add_filter('woocommerce_locate_template', 'woo_customer_completed_order_template', 10, 4);

function woo_customer_completed_order_template($template, $template_name, $template_path)
{
   if ('customer-completed-order.php' === basename($template)){
       $template = trailingslashit(plugin_dir_path( __FILE__ )) . 'templates/woocommerce/customer-completed-order.php';
   }
   return $template;
}

注意:您可以修改/更新if('customer-completed-order.php' === basename($template)),条件.
如果现在使用上面的函数,您可以回显$template、$template_name、$template_path并相应地更新if()条件。
我这边100%有效。

相关问题