Ed777
Ответы в темах
-
Форум: WooCommerce
Тема: WooCommerce ломает товары. Что делать?Он такой же как и остальные. Ок. Спасибо. Пишу на основной форум
Форум: WooCommerce
Тема: WooCommerce ломает товары. Что делать?Но тогда почему конфлик только с одним товаром!? Разработчик темы сказал, что эта проблема не связана с темой сайта. Это к вукомерц. Ошибка со стороны плагина вукомерц.
Форум: WooCommerce
Тема: Не меняется цена вариативного товара@dallynx подскажите что значит попробовать Костыльком.) Не понимаю Вас(
Форум: WooCommerce
Тема: Не меняется цена вариативного товараНе помогло. Но спасибо!
Форум: WooCommerce
Тема: Не меняется цена вариативного товара@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; } } } }
@yube согласен, мой бок, вот ссылка vela-art.com/product/840d-300d/
@fierevere вообще не согласен, коллективный ум намного лучше и при решении любого вопроса в данном случаи одинакового, я считаю что это должно обсуждаться в одной теме. т.к. при решении и поиске любого другого вопроса как показывает практика, приходится перечитывать кучу разных тем с одной и той же проблемой и все это собирать в кучу. Но если у Вас такие правила — ок! Вы модератор, Вам виднее!
Представляю как злорадствует @tuxfighter . Ну это так к слову.
Давайте о правилах форума прекратим. Мы здесь не для этого. Спасибо!
@fierevere для чего открывать еще одну тему с для решения одного и того же вопроса?
@tuxfighter нет не хочу. Я хочу что бы вы не спамили и НЕ засоряли тему своими неуместными комментариями, догадками и мнениями!!!!!!!!!!!!!
@tuxfighter в данном случаи вы зосаряете тему. Вы учасник форума или модератор? Насколько я вижу учасник как и я! У человека такая же самая проблема была как и у меня. У него Код не работает! Он обратился в тему в которой это обсуждают и пытаются решить данную проблему. Если вы прочитаете тему с начала вы поймёте! А не увидев фразу, возможно не туда пишу, делать какие то выводы.
@lukadp вы вот этот код вставляли, насколько я понимаю у вас такая же ситуация что и у меня была. Первый код в начеле темы был неправильный, дальше в сообщениях уже готовый рабочий. Должен работать. Кеш почистите.
@tuxfighter а чего носом ткуть. в чем вопрос @lukadp отличатся от данной темы?
Дублирую верный код
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 вторая цена за другую вариацию, но ее в данный момент нет в наличии. Вукомерц настроен отображать только то что есть в наличии
@takeback да действительно проблема в этом плагине. Когда отключил все работает, но тогда куча ненужных полей!
@takeback супер спасибо!)))
Мы обсуждаем то что относиться к этой теме)))По коду скрыть стоимость, все таки как то не совсем корректно работает, при первом заходе на страницу с товаром, не та цена отображается. Стоит вариация по умолчанию, а цена отображается другой вариации. После того как клацаешь по вариации, выбираешь другую и потом ту что стоит по умолчанию, отображается правильная.
http://prntscr.com/opnqv4
http://prntscr.com/opnr1l
http://prntscr.com/opnr69Остальные два кода супер! Работают!
Касательно ошибки в корзине, если я отключу плагин woocommerce checkout manager, как я скрою ненужные поля? Я только это решение нашел.
@takeback да действительно, я даже не видел. У меня вообще с ней тоже проблема. на странице Просмотра корзины все работает правильно, а вот на странице Оформления заказа не открывается окно ввода промокода и не правильно считает Доставку курьером и Новой почты, если выбрано Курьер на странице Просмотр корзины и перехожу в Оформление, там меняю на Новую почту стоимость не меняется, а должна. Тоже искал решение не нашел, теперь еще и эта ошибка о которой вы написали.