/ Плагины / Отключить кнопку Купить (чекбокс)

Отключить кнопку Купить (чекбокс)

26.09.2022

487

Сделаем возможность у некоторых товаров отключать кнопку купить.

Добавляем поле (чекбокс)

// Создание чекбокса Отключение кнопки Купить
add_action( 'woocommerce_product_options_general_product_data', 'add_new_general_fields' );
function add_new_general_fields() {

	global $woocommerce, $post;

	echo '<div class="options_group">';

	woocommerce_wp_checkbox( 
	array( 
		'id'            => '_disable_buy', 
		'wrapper_class' => 'show_if_simple', 
		'label'         => __('Отключить кнопку Купить', 'woocommerce' ), 
		'description'   => __( 'Не выводить в карточке товара кнопку Купить', 'woocommerce' ) 
		)
	);

	echo '</div>';

}

// Сохранение чекбокса Отключение кнопки Купить
add_action( 'woocommerce_process_product_meta', 'add_general_fields_new_save' );
function add_general_fields_new_save( $post_id ){
	if (!empty($_POST['_disable_buy'])) { update_post_meta( $post_id, '_disable_buy', 'yes' ); }
	else { delete_post_meta( $post_id, '_disable_buy' ); }
}

Скрываем кнопку Добавить в корзину в карточке товара

function disable_buy_button() {
	global $product;
	$disable_buy = get_post_meta( $product->get_ID(), '_disable_buy', 1 );
	if (!empty($disable_buy)) {
		remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
	}
}
add_action( 'woocommerce_single_product_summary', 'disable_buy_button' );

Изменяем кнопку В корзину в категориях

Тут не получится отключить хуком, т.к. хук отключает все ссылки у всех товаров.

Сначала добавим к товарам новый класс (disable_buy)

add_filter('post_class', 'disable_buy_button_class');
function disable_buy_button_class($class) {
	global $product;
	$disable_buy = get_post_meta( $product->get_ID(), '_disable_buy', 1 );
	if (!empty($disable_buy)) {
		$class[] = 'disable_buy';
	}	
    return $class;
}

А далее по этому классу настроим jQuery функцию

jQuery(document).ready(function($){	

	// Убрать ссылки В корзину у товаров без кнопки Купить
	$("li.disable_buy.product").each(function() {
		var product_link = $(this).find('span > a').attr("href");
		$(this).find("a.add_to_cart_button").text("Подробнее");
		$(this).find("a.add_to_cart_button").attr("href", product_link);
		$(this).find("a.add_to_cart_button").removeClass("ajax_add_to_cart");
	});

});

Либо можно скрывать кнопку CSS классом, если это визуально позволяет шаблон.

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Вариативный товар

Вариативный товар

Вариативный товар — один из типов товаров плагина интернет-магазина Woocommerce. Суть вариативного товара в том, что мы создаем несколько вариантов исполнения одного товара (размер, цвет, емкость и т.д.), и в Читать далее »

Watermark для изображений товаров (обзор плагинов)

Watermark для изображений товаров (обзор плагинов)

Рассмотрим различные плагины по добавлению водяного знака (watermark) на изображения товаров. WooCommerce Products Image Watermark (BeRocket) Плагин не понравился. Логотип добавляется только одним способом, с указанием положения. Можно перезагрузить загруженные Читать далее »

Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/

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

Пока нет комментариев. Будь первым!

Отключить кнопку Купить (чекбокс)
Проблемы мультисайтовости
Рекомендации для васПроблемы мультисайтовостиOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.