• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Вывод цены на вариативный товар

Image CMS
Статус
В этой теме нельзя размещать новые ответы.

adward

Форумчанин
#1
Кто нибудь может мне подсказать, как выводить цену радиобаттонами на товар, в случае, если он вариативный?

сейчас он выводится селектом:

 

Валерий

Специалист
#2
Кто нибудь может мне подсказать, как выводить цену радиобаттонами на товар, в случае, если он вариативный?

сейчас он выводится селектом:

Такое можно сделать двумя способами:

1) Плагином Woocommerce Radio Buttons (плагин рабочий, проверено лично, все выводится как надо).

2) При помощи хуков. Например, с помощью вот такого кода:
Код:
add_filter( 'woocommerce_variation_option_name', 'display_price_in_variation_option_name' );

function display_price_in_variation_option_name( $term ) {
    global $wpdb, $product;

    $result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$term'" );

    $term_slug = ( !empty( $result ) ) ? $result[0] : $term;


    $query = "SELECT postmeta.post_id AS product_id
                FROM {$wpdb->prefix}postmeta AS postmeta
                    LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id )
                WHERE postmeta.meta_key LIKE 'attribute_%'
                    AND postmeta.meta_value = '$term_slug'
                    AND products.post_parent = $product->id";

    $variation_id = $wpdb->get_col( $query );

    $parent = wp_get_post_parent_id( $variation_id[0] );

    if ( $parent > 0 ) {
        $_product = new WC_Product_Variation( $variation_id[0] );
        return $term . ' (' . woocommerce_price( $_product->get_price() ) . ')';
    }
    return $term;

}
Работоспособность данного кода я не проверял, так что если что не работает, задавайте вопросы тому, кто это придумал ;), т.е. товарищу Ратнакару (перейдя по ссылке Вы увидите оригинал кода, а под ним фотка дорогого товарища с его координатами и сайтом).
 
Статус
В этой теме нельзя размещать новые ответы.