Пачка полезных сниппетов для WooCommerce. Часть 6

Отключаем платежный шлюз для определенной роли пользователя в WooCommerce

Вам, вероятно, может понадобиться отключить платежные шлюзы в зависимости от роли или возможностей пользователя. Например, нужно отключить PayPal для “user role: shop_manager” или включить определенный шлюз для “user role: customer”. Все, что вам нужно сделать для этого — добавить следующий код в файл functions.php темы:

function paypal_disable_manager( $available_gateways ) {
global $woocommerce;
if ( isset( $available_gateways['paypal'] ) && current_user_can('shop_manager') ) {
unset( $available_gateways['paypal'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'paypal_disable_manager' );

Добавляем приставки и суффиксы к ценам товаров в WooCommerce

Иногда может возникнуть необходимость добавить приставку или суффикс к своим ценам. Это может быть что-то вроде “От…”, “Только…”, “…с НДС”и т.д. Это очень просто сделать с помощью фильтра WooCommerce(напоминаем, что фильтры (filter) изменяют значения существующих переменных, в то время как действия (action) добавляют контент).

woocommerce-add-prefix-suffix-price[1]

Итак, для того, чтобы добавить приставки или суффиксы к ценам, вам нужно добавить следующий код в файл functions.php темы:

// Добавляем префикс и суффикс к цене

add_filter('woocommerce_price_html', 'custom_single_price');

function custom_single_price() {
$product = new WC_Product( get_the_ID() );
$price = '';
$price .= '<span class="price-prefix">ЗДЕСЬ ПРЕФИКС</span>';
$price .= woocommerce_price($product->price);
$price .= '<span class="price-suffix">ЗДЕСЬ СУФФИКС</span>';
return $price;
}

Определяем процент надбавки к цене в зависимости от страны доставки

Этот сниппет добавит базовую наценку только применительно к указанным странам. Имейте в виду, что вы можете изменить это поведение и исключить из списка страну, просто изменив in_array на !in_array, и все будет работать «наоборот».

add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
  global $woocommerce;

	if ( is_admin() && ! defined( 'DOING_AJAX' ) )
		return;

 	$county 	= array('US');
	$percentage 	= 0.01;

	if ( in_array( $woocommerce->customer->get_shipping_country(), $county ) ) :
		$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
		$woocommerce->cart->add_fee( 'Surcharge', $surcharge, true, '' );
	endif;

}

Переименовываем страну в WooCommerce

Для того, чтобы переименовать любую страну из списка стран WooCommerce вам нужно просто добавить следующей код в файл functions.php темы:

add_filter( 'woocommerce_countries', 'rename_ireland' );
function rename_ireland( $countries ) {
   $countries['IE'] = 'Ирландия';
   return $countries;
}

Если вы начинаете разбираться с WooCommerce, то не забудьте посетить нашу рубрику WooCommerce, где мы публикуем материалы специально по тематике магазинов на этой платформе.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 2.5/5 (20 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top