Замените “Добавить в корзину” на ссылку на страницу контактов для конкретного товара.

Вопрос или проблема

На моем WooCommerce я пытаюсь скрыть кнопку “Добавить в корзину” и заменить ее кнопкой “Связаться с нами” (с ссылкой на страницу контактов) на конкретной странице продукта.

Я нашел разные фрагменты кода, но, похоже, они больше не работают :/

Есть идеи? 🙂

Большое спасибо!

Вы можете попробовать это. Думаю, это сработает нормально.

/*ВСТАВЬТЕ ЭТО В ФАЙЛ ФУНКЦИЙ ВАШЕЙ ТЕМЫ*/

/*ШАГ 1 - УБРАТЬ КНОПКУ "ДОБАВИТЬ В КОРЗИНУ" НА СТРАНИЦЕ ТОВАРОВ (МАГАЗИН) */

add_action('init','remove_loop_button'); 
function remove_loop_button(){
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); 
}

/*ШАГ 2 - ДОБАВИТЬ НОВУЮ КНОПКУ, КОТОРАЯ ССЫЛАЕТСЯ НА СТРАНИЦУ ПРОДУКТА ДЛЯ КАЖДОГО ПРОДУКТА
*/

add_action('woocommerce_after_shop_loop_item','replace_add_to_cart'); 
function replace_add_to_cart() {
    $link = get_permalink(get_page_by_path('contact-us')); //измените 'contact-us' на ваш слаг страницы контактов.
    echo do_shortcode('<br>'); 
}

Ответ или решение

Для замены кнопки "Добавить в корзину" на кнопки "Связаться с нами" на страницах конкретных продуктов в WooCommerce, вам нужно добавить определенный код в файл функций вашей темы (functions.php). Давайте подробно рассмотрим шаги, которые помогут вам выполнить эту задачу.

Шаг 1: Удаление кнопки "Добавить в корзину" из списка продуктов

Первым шагом нужно удалить стандартную кнопку "Добавить в корзину" из архива продуктов (магазина). Для этого добавьте следующий код в файл functions.php вашей темы:

add_action('init','remove_loop_button'); 
function remove_loop_button(){
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); 
}

Шаг 2: Добавление пользовательской кнопки "Связаться с нами"

Далее, вам нужно добавить новую кнопку, которая будет вести на страницу контактов, для определенного продукта. В этом шаге мы предполагаем, что вы хотите заменить кнопку только на конкретных продуктах. Мы можем использовать идентификатор продукта (ID) для определения, на каких страницах следует отображать новую кнопку. Вставьте следующий код в тот же файл functions.php:

add_action('woocommerce_after_shop_loop_item', 'replace_add_to_cart'); 
function replace_add_to_cart() {
    global $product;

    // Замените '123' на ID вашего конкретного продукта
    if ($product->get_id() == 123) {
        $link = get_permalink(get_page_by_path('contact-us')); // Замените 'contact-us' на ваш слаг страницы контактов.
        echo '<br><div class="btn-box"><a href="' . esc_url($link) . '" class="btn btn-size-">Связаться с нами</a></div>'; 
    }
}

Объяснение кода:

  1. remove_loop_button(): Эта функция отключает действие, которое отвечает за вывод кнопки "Добавить в корзину" в архиве товаров.

  2. replace_add_to_cart(): Эта функция добавляет новое действие. Она проверяет ID текущего продукта. Если ID продукта равен 123 (или вашему целевому ID), тогда создается новый элемент HTML, который выводит кнопку "Связаться с нами" с ссылкой на страницу контактов.

Как использовать:

  • Замените число 123 на фактический ID продукта, для которого вы хотите заменить кнопку.
  • Убедитесь, что вы правильно указали contact-us в функции get_page_by_path, заменив его на слаг вашей страницы контактов.

После добавления этого кода, кнопка "Добавить в корзину" должна исчезнуть с указанного вами продукта и появится кнопка "Связаться с нами", ведущая на вашу контактную страницу.

Важно:

  • Перед внесением изменений в файл functions.php, обязательно сделайте резервную копию, чтобы иметь возможность восстановить сайт в случае ошибки.
  • Если у вас активна кэширование на сайте, возможно, вам потребуется очистить кэш, чтобы изменения вступили в силу.

Если у вас возникнут какие-либо дополнительные вопросы или понадобится помощь, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...