Отключаем платежный шлюз для определенной роли пользователя в 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) добавляют контент).
Итак, для того, чтобы добавить приставки или суффиксы к ценам, вам нужно добавить следующий код в файл 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, где мы публикуем материалы специально по тематике магазинов на этой платформе.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.