Я добавил код ниже, чтобы показать раскрывающийся список переключателя валют на странице оформления заказа WooCommerce, которая работает нормально, но я не хочу отображать поле переключателя валют, если кто-то добавил продукт из категории «Игры» и использует только валюту магазина по умолчанию
Код 1
add_action('woocommerce_before_checkout_billing_form', 'wps_add_select_checkout_field');
function wps_add_select_checkout_field( $checkout ) {
echo '<label for="payment_option" class="payment_option">'.__('Preferred currency').'</label>';
echo '<div class="own">', do_shortcode('[woocs]'), '</div>';
return $checkout;
}
//* Process the checkout
add_action('woocommerce_checkout_process', 'wps_select_checkout_field_process');
function wps_select_checkout_field_process() {
global $woocommerce;
// Check if set, if its not set add an error.
if ($_POST['payopt'] == "blank")
wc_add_notice( '<strong>Please select a currency</strong>', 'error' );
}
На основе этой ветки ответов: Проверка товаров в корзине для категории продуктов в Woocommerce
Я попробовал приведенный ниже код и думаю, что что-то не хватает. Если я использую приведенный ниже код, он вообще не показывает переключатель валют, даже если продукт относится к категории "Игры" или других категорий.
Код 2
add_action('woocommerce_before_cart', 'check_product_category_in_cart');
function check_product_category_in_cart() {
// Here set your product categories in the array (can be IDs, slugs or names)
$categories = array('games');
$found = false; // Initializing
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
// If product categories is found
if ( !has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
$found = true; // Set to true
break; // Stop the loop
}
}
// If any defined product category is found, run below code
if ( $found ) {
add_action('woocommerce_before_checkout_billing_form', 'wps_add_select_checkout_field');
function wps_add_select_checkout_field( $checkout ) {
echo '<label for="payment_option" class="payment_option">'.__('Preferred currency').'</label>';
echo '<div class="own">', do_shortcode('[woocs]'), '</div>';
return $checkout;
}
//* Process the checkout
add_action('woocommerce_checkout_process', 'wps_select_checkout_field_process');
function wps_select_checkout_field_process() {
global $woocommerce;
// Check if set, if its not set add an error.
if ($_POST['payopt'] == "blank")
wc_add_notice( '<strong>Please select a currency</strong>', 'error' );
}
}
}
Есть ли у вас какие-либо другие предложения для того же? Где я могу добавить переключатель валют на странице оформления заказа в зависимости от категории товара в корзине. Код 1 отлично работает на странице оформления заказа, но я не хочу запускать этот код, если категория продукта - игры.