используйте php, чтобы изменить используемый шаблон электронной почты woocommerce (НЕ настраивать шаблоны) - PullRequest
0 голосов
/ 26 июня 2018

Мне сообщили о проблеме от 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

1 Ответ

0 голосов
/ 14 июля 2018

WooCommerce использует фильтр wc_locate_template для загрузки своих шаблонов.

Этот фильтр можно использовать для условной загрузки определенных шаблонов или возврата по умолчанию. Это не даст конкретного ответа на ваш вопрос, но даст вам общее представление о том, как решить эту проблему.

Я столкнулся с подобной проблемой, пытаясь использовать шаблоны лезвий в моей теме WP при использовании WooCommerce.

/**
 * 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');
...