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

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

26.09.2022

658

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

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

// Создание чекбокса Отключение кнопки Купить
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

Шорткоды woocommerce

Для вывода (например) на главной странице сайта элементов WC. Последние продуктыПолезно для использования на главной странице. Определяет, сколько товаров показывать на странице и количество сколько столбцов. Код: Рекомендуемые (featured)Работает точно Читать далее »

/
Заявка на товар

Заявка на товар

Бывает так, что нам не нужно непосредственно продавать товар через сайт, а только лишь получить на него заявку. Данный механизм прост: нам нужно создать форму обратной связи в которую будет Читать далее »

/

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

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

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