Добавьте кнопку после добавления в корзину и перенаправьте ее на какую-либо настраиваемую ссылку в WooCommerce.

Я добавляю кнопку после кнопки добавления в корзину с помощью этого крючка:

add_action( 'woocommerce_after_add_to_cart_button', array($this, 'add_button'));

Но когда я нажимаю на эту кнопку, она выполняет функцию кнопки «Добавить в корзину».

Как настроить ссылку этой кнопки (на другую страницу)?

Заранее спасибо.


person Ankur    schedule 30.07.2016    source источник
comment
Как выглядит функция обратного вызова add_button? Измените свой вопрос, включив код вместо публикации в комментариях.   -  person helgatheviking    schedule 31.07.2016


Ответы (1)


Вам нужно использовать ловушку woocommerce_after_add_to_cart_button таким образом, чтобы получить то, что вы ожидаете:

add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_button', 10, 0 );
function add_custom_button() { 
    $my_custom_link = home_url('/my_page_slug/');
    echo '<a class="btn-atc" href="' . esc_url( $my_custom_link ) .'">' . __( "My text button", "my_theme_slug" )  . '</a>';
}; 

Вставьте этот фрагмент кода в файл function.php своей активной дочерней темы или темы.

Затем вам нужно будет заменить (в коде) правильный путь ссылки, имя кнопки и ярлык темы для:

  • '/my_page_slug/'
  • "My text button"
  • "my_theme_slug"

Это должно сработать.


Этот раздел исключен из вашего вопроса, и он касается стиля вашей кнопки:

Возможно, вам потребуется добавить некоторые пользовательские правила CSS в файл style.css, расположенный в вашей активной дочерней теме или теме, для стилизации внешнего вида вашей пользовательской кнопки (используйте класс «btn-atc» вместо «btn») :

/* Based on your comment */

a.btn-atc {
    background-color: #eee !important; 
    border: 2px solid #999; 
    -webkit-border-radius: 3px; 
    -moz-border-radius: 3px; 
    border-radius: 3px; 
    font-size: 20px; 
    font-weight: 500; 
    line-height: 1.7em !important; 
    margin-left: 5px; 
    margin-top: -5px; 
    position: relative; 
    padding: 0.3em 1em; 
    -webkit-transition: all 0.2s; 
    -moz-transition: all 0.2s; 
    transition: all 0.2s; 
}
a.btn-atc:hover {
    background-color: #666 !important; 
    color: #fff !important; 
}
person LoicTheAztec    schedule 31.07.2016
comment
Привет, спасибо за ответ. Я пытаюсь изменить CSS этой кнопки echo '‹button class = btn href ='. esc_url ($ my_custom_link). '›'. __ (Моя текстовая кнопка, my_theme_slug). ''; }; используя класс как btn - person Ankur; 31.07.2016
comment
Css-скрипт .btn {margin-left: 5px; маржа сверху: -5 пикселей; положение: относительное; заполнение: 0.3em 1em; граница: сплошная 2px; -webkit-border-radius: 3 пикселя; -moz-border-radius: 3 пикселя; радиус границы: 3 пикселя; фон: прозрачный; размер шрифта: 20 пикселей; font-weight: 500; высота строки: 1.7em! важно; -webkit-transition: все 0,2 с; -moz-переход: все 0,2 с; переход: все 0,2 с; } - person Ankur; 31.07.2016
comment
но все же в моем стиле кнопок нет изменений - person Ankur; 31.07.2016