Статус индивидуального заказа Woocommerce с персонализированным уведомлением по электронной почте Отключить переводPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Статус индивидуального заказа Woocommerce с персонализированным уведомлением по электронной почте Отключить перевод

Сообщение Anonymous »

Здесь я нашел хороший код для создания уникального статуса заказа с возможностью отправки электронного письма. Это работает хорошо, единственная проблема в том, что мой веб-сайт двуязычен (ro,hu), и все уникальные электронные письма о статусе отправляются в переводе на язык по умолчанию (ro), и не учитывается, купил ли клиент только что на hu. Как это вставить в код, чтобы если я отправлю письмо венгерцу, то переводчик его не переводил, а если клиент заказывал в ро, то переводил?
Я уже спрашивал у ИИ, пробовал несколько коды, но ни один из них не работает.
Я пробовал эти, но ни один из них не работал, и я не могу понять, пытаюсь ли я использовать неправильный крючок или проблема в другом месте

Код: Выделить всё

add_action('woocommerce_email_order_meta', function($order) {
global $wpdb;
$order_id = $order->get_id();
$order_language = $wpdb->get_var($wpdb->prepare("SELECT meta_value FROM ls_wc_orders_meta WHERE order_id = %d AND meta_key = 'trp_language'",$order_id));
if ($order_language) {
add_filter('locale', function($locale) use ($order_language) {
return $order_language;});
if (function_exists('trp_change_language')) {
trp_change_language($order_language);
}
}, 10, 1);

Код: Выделить всё

add_filter( 'gettext', 'remove_translate_for_custom_email', 10, 3 );
function remove_translate_for_custom_email( $translated_text, $text, $domain ) {
if ( $domain === 'woocommerce' ) {
return $text;
}
return $translated_text;
}

Код: Выделить всё

add_action( 'woocommerce_email_before_order_table', 'set_email_language', 10, 4 );
function set_email_language( $order, $sent_to_admin, $plain_text, $email ) {
switch_to_locale( 'en_US' );
}

add_action( 'woocommerce_email_after_order_table', 'reset_email_language', 10, 1 );
function reset_email_language( $order ) {
restore_previous_locale();
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... n-off-tran
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»