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

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

26.09.2022

749

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

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

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

[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Групповой товар Woocommerce

Групповой товар Woocommerce

Групповой товар в Woocommerce это объединение в одной карточке нескольких товаров. Причем зайдя в карточку можно приобрести каждый товар по отдельности это по сути не правильно. Зачем нужен такой вид Читать далее »

Изменение методов доставки в зависимости от условий

Изменение методов доставки в зависимости от условий

При оформлении товара мы можем задавать условия для вывода методов доставки, а также менять их стоимость. В данном примере при достижении сумм 1000 и 5000 методы доставки становятся бесплатными. Закомментирован Читать далее »

/
Конвертировать цену в рубли

Конвертировать цену в рубли

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

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

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

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