Заменяем кнопку Добавить в корзниу на Подробнее в каталоге
По умолчанию в woocommerce в общем каталоге у простого товара выводиться кнопка Добавить в корзину, можно ее заменить на кнопку подробнее, чтобы пользователе переходил в карту товара и смотрел подробную информацию
Для этого файл functions.php вашей темы добавляем код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/*Заменяем кнопку Добавить в корзину на подробнее */ /*шаг 1 - Удаляем кнопку Добавить в корзину */ function remove_loop_button(){ remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); } add_action('init','remove_loop_button'); /*шаг 2 -Добавляем кнопку Подробнее */ add_action('woocommerce_after_shop_loop_item','replace_add_to_cart'); function replace_add_to_cart() { global $product; $link = $product->get_permalink(); echo do_shortcode('<a href="'.$link.'" class="button addtocartbutton">Подробнее</a>'); } |
Если вам нужно две кнопки Добавить в корзину и подробнее, то первый шаг не вписываем.
Спасибо Денис, за необходимое решение. Лаконично и ясно!
В моём случае требовалось поменять кнопку у простого товара, но в тот же момент оставить кнопку у товара с вариациями.
я использовал только второй шаг. А не нужную кнопку удалил стилем css.
мой вариант выглядел так:
/*шаг 2 -Добавляем кнопку Подробнее только для "простого товара" */
add_action('woocommerce_after_shop_loop_item','replace_add_to_cart');
function replace_add_to_cart() {
global $product;
$product_type = $product->product_type;
$link = $product->get_permalink();
switch ( $product_type ) {
case 'simple':
echo do_shortcode('Подробнее');
}
}
в custom.css я добавил
.product-type-simple .add-links-wrap {
display: none;
}
Добрый день! Подскажите новичку, как вместо кнопки подробнее, добавить вот эту кнопку заказать, не знаю php пэтому не получается слить(
/* Отправить запрос
=============================================================== */
function my_price_replace($price, $_product) {
if ($_product->get_price() == 0) return __(‘
Заказать
‘.do_shortcode(‘[contact-form-7 id=»1446″ title=»Заказ»]’).’
‘);
return $price;
}
add_filter( ‘woocommerce_empty_price_html’, ‘my_price_replace’, 1, 2 );
add_filter( ‘wpcf7_validate_configuration’, ‘__return_false’ );
Спасибо! Все работает. Но я делал через плагин My Custom Functions (я нуб).
Добрый день! подскажите как сделать наоборот:
Есть товар без указанной цены, которую я с помощью функции меняю на «цена по запросу».
В итоге, вместо «добавить в корзину» появляется кнопка «Подробнее».
Нужно чтобы этот товар добавлялся в корзину без цены
Спасибо.
Юрий, скажите пожалуйста, а как заменить кнопку «купить» на кпонпку «Подробнее» которая ведет на магазин партнер? Я хочу сделать просто партнерскую витрину.
Спасибо заранее
Здравствуйте в файле function.php нету такого кода, где мне найти чтоб заменить?
спасибо огромное
Здравствуйте. Воспользовался Вашим способом и это сработало. Но возникла проблемма. Было открыто две страницы в двух разных вкладках в редакторе Elementor. Одна — просто страница, вторая — шаблон страницы Elementor. После обновления файла functions.php Elementor перестал открываться для этих двух страниц. При нажатии «Редактировать в Elementor» Выдает ошибку: Fatal error: Uncaught Error: Call to undefined function wc_print_notices() in /home/karaba6/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php:3364 Stack trace: #0 /home/karaba6/public_html/wp-includes/class-wp-hook.php(286): woocommerce_output_all_notices(») #1 /home/karaba6/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array) #2 /home/karaba6/public_html/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #3 /home/karaba6/public_html/wp-content/plugins/woocommerce/includes/shortcodes/class-wc-shortcode-products.php(629): do_action(‘woocommerce_bef…’) #4 /home/karaba6/public_html/wp-content/plugins/woocommerce/includes/shortcodes/class-wc-shortcode-products.php(100): WC_Shortcode_Products->product_loop() #5 /home/karaba6/public_html/wp-content/plugins/woocommerce/includes/class-wc-shortcodes.php(264): WC_Shortcode_Products->get_content() #6 /home/karaba6/public_html/wp-includes/shortcodes.php(319): WC_Shortcodes::products(Array, », ‘products’) #7 [internal in /home/karaba6/public_html/wp-content/plugins/woocommerce/includes/wc-template-functions.php on line 3364 При этом все остальные страницы, которые не были… Подробнее »