Отображать пользовательское уведомление перед всеми уведомлениями по умолчанию на странице оформления заказа в Woocommerce - PullRequest
0 голосов
/ 02 июля 2018

Я использую следующий код для показа пользовательского сообщения незарегистрированным пользователям (посетителям) woocommerce на странице оформления заказа

add_action('woocommerce_before_checkout_form', 'my_custom_message');
function my_custom_message() {
if ( ! is_user_logged_in() ) {
       wc_print_notice( __('This is my custom message'), 'notice' );
    }
}

верхний код получить этот форум, от г-на @loictheaztec Моя ссылка перед вопросом ниже:
Отображение пользовательского сообщения для гостевых пользователей на странице оформления заказа в Woocommerce

Я хотел бы изменить woocommerce_before_checkout_form в коде, чтобы переместить мое сообщение вверх (первое) на странице оформления заказа. Но я понятия не имею, как это сделать. Я знаю только эти два крючка ниже (относится к странице оформления заказа) :

  • woocommerce_before_checkout_form
  • woocommerce_after_checkout_form

i added picture of my problem

1 Ответ

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

Чтобы отобразить свое пользовательское сообщение на странице оформления заказа перед сообщением о входе в Woocommerce и перед добавлением купонного сообщения, вместо этого вы будете использовать следующий код:

add_action('template_redirect', 'my_custom_message');
function my_custom_message() {
    if ( ! is_user_logged_in() && is_checkout() && ! is_wc_endpoint_url() ) {
        wc_add_notice( sprintf( __('This is my <strong>"custom message"</strong> and I can even add a button to the right… <a href="%s" class="button alt">My account</a>'), get_permalink( get_option('woocommerce_myaccount_page_id') ) ), 'notice' );
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

enter image description here


Более простая версия для всех пользователей только на странице оформления заказа:

add_action('template_redirect', 'my_custom_message');
function my_custom_message() {
    if ( is_checkout() && ! is_wc_endpoint_url() ) {
        wc_add_notice( __('This is my custom message'), 'notice' );
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...