Title: Не меняется цена вариативного товара
Last modified: 10.11.2019

---

# Не меняется цена вариативного товара

 *  [Ed777](https://ru.wordpress.org/support/users/d7fox7vr/)
 * (@d7fox7vr)
 * [6 лет, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/)
 * На днях обновился вукомерц. После обновления перестало корректно меняться стоимость
   вариативного товара (заметил это после обновления). Точнее она меняется, но только
   после выбора вариации и нажатия на пустом месте экрана. Раньше менялась сразу
   при выборе вариации без нажатия по любому месту экрана. Подскажите в чем проблема
   и как решить данную проблему!? Данная проблема со всеми товарами.
    -  Тема изменена 6 лет, 11 месяцев назад пользователем [Ed777](https://ru.wordpress.org/support/users/d7fox7vr/).
 * Страница, с которой нужна помощь: _[[войдите](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fru.wordpress.org%2Fsupport%2Ftopic%2F%25D0%25BD%25D0%25B5-%25D0%25BC%25D0%25B5%25D0%25BD%25D1%258F%25D0%25B5%25D1%2582%25D1%2581%25D1%258F-%25D1%2586%25D0%25B5%25D0%25BD%25D0%25B0-%25D0%25B2%25D0%25B0%25D1%2580%25D0%25B8%25D0%25B0%25D1%2582%25D0%25B8%25D0%25B2%25D0%25BD%25D0%25BE%25D0%25B3%25D0%25BE-%25D1%2582%25D0%25BE%25D0%25B2%25D0%25B0%25D1%2580%25D0%25B0%2F%3Foutput_format%3Dmd&locale=ru_RU),
   чтобы увидеть ссылку]_

Просмотр 9 ответов — с 1 по 9 (всего 9)

 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [6 лет, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-340575)
 * Видимо, что что-то изменилось в шаблонах (тег или класс) и теперь скрипт, совместимый
   с предыдущей версией, не отрабатывают так, как задумывалось.
 *  Автор [Ed777](https://ru.wordpress.org/support/users/d7fox7vr/)
 * (@d7fox7vr)
 * [6 лет, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-341421)
 * [@takeback](https://ru.wordpress.org/support/users/takeback/) вы мне как то очень
   помогли с данным кодом. Ниже данный код. Но после обновления вукомерц я так понимаю
   что то с ним не то. Цена не меняется на вариативном товаре пока не кликнешь по
   пустому месту экрана. Можно как то исправить? Подскажете?
 *     ```
       //Отображение одной цены (начало)
       add_action( 'woocommerce_before_single_product', 'check_if_variable_first' );
       function check_if_variable_first(){
           if ( is_product() ) {
               global $post;
               $product = wc_get_product( $post->ID );
               if ( $product->is_type( 'variable' ) ) {
                   // removing the price of variable products
       remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
   
       //Показываем одинаковую стоимость вариативных товаров
       add_filter('woocommerce_available_variation', function ($value, $object = null, $variation = null) {
           if ($value['price_html'] == '') {
               $value['price_html'] = '<span class="price">' . $variation->get_price_html() . '</span>';
           }
           return $value;
       }, 10, 3);
   
       // Change location of
       add_action( 'woocommerce_single_product_summary', 'custom_wc_template_single_price', 10 );
       function custom_wc_template_single_price(){
           global $product;
   
       // Variable product only
       if($product->is_type('variable')):
   
           // Main Price
       		foreach($product->get_available_variations() as $pav){
                   $def=true;
                   foreach($product->get_variation_default_attributes() as $defkey=>$defval){
                       if($pav['attributes']['attribute_'.$defkey]!=$defval){
                           $def=false;             
                       }   
                   }
                   if($def){
                       $price = $pav['price_html' ] ;
                   }  
               }
   
       ?>
   
           <style>
               div.woocommerce-variation-price,
               div.hidden-variable-price {
                   height: 0px !important;
                   overflow:hidden;
                   position:relative;
                   line-height: 0px !important;
                   font-size: 0% !important;
               }
           </style>
           <script>
           jQuery(document).ready(function($) {
               $('select').blur( function(){
                   if( '' != $('input.variation_id').val() ){
                       $('p.price').html($('div.woocommerce-variation-price > span.price').html()).append('<p class="availability">'.html()+'</p>');
                       console.log($('input.variation_id').val());
                   } else {
                       $('p.price').html($('div.hidden-variable-price').html());
                       if($('p.availability'))
                           $('p.availability').remove();
                       console.log('NULL');
                   } 
               }); 
           });
           </script>
           <?php
           echo '<p class="price">'.$price. '</p> 
           <div class="hidden-variable-price" >'.$price.'</div>';
   
       endif;
       }
   
               }
           }
       }
       ```
   
 *  [takeback](https://ru.wordpress.org/support/users/takeback/)
 * (@takeback)
 * [6 лет, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-341439)
 * [@d7fox7vr](https://ru.wordpress.org/support/users/d7fox7vr/) Я уже говорил, 
   что код не мой, потому как я ближе к 0 в программировании. По этому я не могу
   однозначно определить проблему. К тому же я не обновлялся, по этому не могу потестить
   у себя. Видно что консоль ругается…
    «Uncaught TypeError: «<p class=»availability»
   >».html is not a function»
 * попробуйте заменить эту часть кода
    `.append('<p class="availability">'.html()
   +'</p>');`
 * на вот это
    `.append('<p class="availability">'+'</p>');`
 * Я не уверен что это что-то решит, но как минимум станет ясно что дело не в этой
   ошибке.
    -  Ответ изменён 6 лет, 11 месяцев назад пользователем [takeback](https://ru.wordpress.org/support/users/takeback/).
 *  Автор [Ed777](https://ru.wordpress.org/support/users/d7fox7vr/)
 * (@d7fox7vr)
 * [6 лет, 11 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-341443)
 * Не помогло. Но спасибо!
 *  [dallynx](https://ru.wordpress.org/support/users/dallynx/)
 * (@dallynx)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-341732)
 * Костыльком попробуйте:
 *     ```
       <script>
   
           jQuery(document).ready(function($) {
   
               $('select').change( function(){
               // console.log($( 'input.variation_id' ));
               window.setTimeout( change_price , 1000 );
                 function change_price(){
                   if( '' != $('input.variation_id').val() ){
                       $('p.price').html($('div.woocommerce-variation-price > span.price').html()).append('<p class="availability">'+'</p>');
                       console.log($('input.variation_id').val());
                   } else {
                       $('p.price').html($('div.hidden-variable-price').html());
                       if($('p.availability'))
                           $('p.availability').remove();
                       console.log('NULL');
                   }
                 }                                            
               });
           });
       </script>
       ```
   
 *  Автор [Ed777](https://ru.wordpress.org/support/users/d7fox7vr/)
 * (@d7fox7vr)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-341783)
 * [@dallynx](https://ru.wordpress.org/support/users/dallynx/) подскажите что значит
   попробовать Костыльком.) Не понимаю Вас(
 *  [dallynx](https://ru.wordpress.org/support/users/dallynx/)
 * (@dallynx)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-12168086)
 * В том коде, который Вы опубликовали замените скрипт на тот, что предложил я. 
   Это плохое решение. Работать если и будет, то с задержкой, поэтому «костыль».
 *  [dallynx](https://ru.wordpress.org/support/users/dallynx/)
 * (@dallynx)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-12168087)
 * Вариант вместо вашего кода [pastebin](https://pastebin.com/RY1jMpmX). Работает
   на storefront на других темах не знаю.
    -  Ответ изменён 6 лет, 10 месяцев назад пользователем [dallynx](https://ru.wordpress.org/support/users/dallynx/).
 *  [ameliaevans77](https://ru.wordpress.org/support/users/ameliaevans77/)
 * (@ameliaevans77)
 * [6 лет, 8 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-12172319)
 * Костылек действительно работает, но очень тормозит.
    Может быть кто-то уже нашел
   вариант нового кода для последней версии Woocommerce? Мне нужна только одна функция—
   смена цены при выборе вариации, чтобы выводилась цена выбранной вариации вместо
   диапазона.

Просмотр 9 ответов — с 1 по 9 (всего 9)

 Тема «Не меняется цена вариативного товара» закрыта для новых ответов.

 * Форум: [WooCommerce](https://ru.wordpress.org/support/forum/woocommerce/)
 * 9 ответов
 * 4 участника
 * Последний ответ: [ameliaevans77](https://ru.wordpress.org/support/users/ameliaevans77/)
 * Последняя активность: [6 лет, 8 месяцев назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d1%86%d0%b5%d0%bd%d0%b0-%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0/#post-12172319)
 * Статус: нерешённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
