Отключаем платежный шлюз для определенной роли пользователя в 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]](https://wpincode.com/wp-content/uploads/2015/06/woocommerce-add-prefix-suffix-price1.jpg)
Итак, для того, чтобы добавить приставки или суффиксы к ценам, вам нужно добавить следующий код в файл 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, где мы публикуем материалы специально по тематике магазинов на этой платформе.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.
