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

Решено Woocommerce и «итоговая цена» вариативного товара?

Image CMS

Xam

Новичок
#1
Добрый день! Никак не пойму где найти файл и код отвечающий за вывод цены вариативного товара?
Или вывести надпись с помощью функции, только что писать также не понимаю((

Необходимо при выборе атрибута вариативного товара дописать надпись типа: Итоговая цена: "сумма вариации товара"

как сейчас:



как хочу чтобы было:



заранее спасибо за помощь!
 

searchingman

Гуру
Местный
#2

Xam

Новичок
#3
результат не оправдал ожидания((



я уже пробовал данный метод, почему-то надпись появляется выше окончательной цены((

вот код файла variation.php

PHP:
<script type="text/template" id="tmpl-variation-template">
   <div class="woocommerce-variation-description">
     {{{ data.variation.variation_description }}}
   </div>

   <div class="woocommerce-variation-price">
  {{{ data.variation.price_html }}}
  </div>

   <div class="woocommerce-variation-availability">
   {{{ data.variation.availability_html }}}
   </div>
</script>
<script type="text/template" id="tmpl-unavailable-variation-template">
   <p><?php _e( 'Sorry, this product is unavailable. Please choose a different combination.', 'woocommerce' ); ?></p>
</script>
 

Xam

Новичок
#4
вот так отображается в инспекторе браузера

PHP:
<div class="single_variation_wrap">
            <div style="" class="woocommerce-variation single_variation">
    <div class="woocommerce-variation-description">
            </div>

    <div class="woocommerce-variation-price">итоговая цена:
<span class="price">
<span class="woocommerce-Price-amount amount">1.200&nbsp;<span class="woocommerce-Price-currencySymbol">₽</span>
</span>
</span>
    </div>

    <div class="woocommerce-variation-availability">
  
    </div>
</div><div class="woocommerce-variation-add-to-cart variations_button woocommerce-variation-add-to-cart-enabled">
            <div class="quantity"><input min="1" step="1" name="quantity" value="1" title="Кол-во" class="input-text qty text" size="4" type="number"></div>        <button type="submit" class="single_add_to_cart_button etheme-simple-product button alt">Товар в корзине</button>
    <input name="add-to-cart" value="6928" type="hidden">
    <input name="product_id" value="6928" type="hidden">
    <input name="variation_id" class="variation_id" value="23125" type="hidden">
</div>        </div>
как понимаю нужно найти класс
<span class="woocommerce-Price-amount amount"> и как-то внедрить эту злосчастную надпись(( но вот не будет ли эта надпись потом отображаться на всех "ценниках" и вариативных и одиночных?


а вот что в файле variable.php

PHP:
<?php
/**
* Variable product add to cart
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product/add-to-cart/variable.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see     https://docs.woothemes.com/document/template-structure/
* @author  WooThemes
* @package WooCommerce/Templates
* @version 2.5.0
*/
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

global $product;

$attribute_keys = array_keys( $attributes );

do_action( 'woocommerce_before_add_to_cart_form' ); ?>

<form class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo absint( $product->id ); ?>" data-product_variations="<?php echo htmlspecialchars( json_encode( $available_variations ) ) ?>">
    <?php do_action( 'woocommerce_before_variations_form' ); ?>

    <?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
        <p class="stock out-of-stock"><?php _e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
    <?php else : ?>
        <table class="variations" cellspacing="0">
            <tbody>
                <?php foreach ( $attributes as $attribute_name => $options ) : ?>
                    <tr>
                        <td class="label"><label for="<?php echo sanitize_title( $attribute_name ); ?>"><?php echo wc_attribute_label( $attribute_name ); ?></label></td>
                        <td class="value">
                            <?php
                                $selected = isset( $_REQUEST[ 'attribute_' . sanitize_title( $attribute_name ) ] ) ? wc_clean( urldecode( $_REQUEST[ 'attribute_' . sanitize_title( $attribute_name ) ] ) ) : $product->get_variation_default_attribute( $attribute_name );
                                wc_dropdown_variation_attribute_options( array( 'options' => $options, 'attribute' => $attribute_name, 'product' => $product, 'selected' => $selected ) );
                                echo end( $attribute_keys ) === $attribute_name ? apply_filters( 'woocommerce_reset_variations_link', '<a class="reset_variations" href="#">' . __( 'Clear', 'woocommerce' ) . '</a>' ) : '';
                            ?>
                        </td>
                    </tr>
                <?php endforeach;?>
            </tbody>
        </table>

        <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>

        <div class="single_variation_wrap">
            <?php
                /**
                 * woocommerce_before_single_variation Hook.
                 */
                do_action( 'woocommerce_before_single_variation' );

                /**
                 * woocommerce_single_variation hook. Used to output the cart button and placeholder for variation data.
                 * @since 2.4.0
                 * @hooked woocommerce_single_variation - 10 Empty div for variation data.
                 * @hooked woocommerce_single_variation_add_to_cart_button - 20 Qty and cart button.
                 */
            do_action( 'woocommerce_single_variation' );

                /**
                 * woocommerce_after_single_variation Hook.
                 */
                do_action( 'woocommerce_after_single_variation' );
            ?>
        </div>

        <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
    <?php endif; ?>

    <?php do_action( 'woocommerce_after_variations_form' ); ?>
</form>

<?php
do_action( 'woocommerce_after_add_to_cart_form' );
 
Последнее редактирование:

searchingman

Гуру
Местный
#5
результат не оправдал ожидания((



я уже пробовал данный метод, почему-то надпись появляется выше окончательной цены((

вот код файла variation.php

PHP:
<script type="text/template" id="tmpl-variation-template">
   <div class="woocommerce-variation-description">
     {{{ data.variation.variation_description }}}
   </div>

   <div class="woocommerce-variation-price">
  {{{ data.variation.price_html }}}
  </div>

   <div class="woocommerce-variation-availability">
   {{{ data.variation.availability_html }}}
   </div>
</script>
<script type="text/template" id="tmpl-unavailable-variation-template">
   <p><?php _e( 'Sorry, this product is unavailable. Please choose a different combination.', 'woocommerce' ); ?></p>
</script>
С помощью файла шаблона variation.php добились, что нужная фраза выводится. Остальное нужно делать с помощью стилей CSS.
Пример на теме storefront:
- так выглядит добавленная фраза в файл variation.php, т.е. фраза находится над ценой.
- если поправить стили , то будет выглядеть так .

Без ссылки на страницу сайта с выведенной фразой что-то советовать по стилям бесполезно.
 

searchingman

Гуру
Местный
#9
исправил (трудности с кириллицей и доменами(( )
Вижу, что сами справились со стилями.
Общий принцип при добавлении каких-то новых элементов (данных) на страницу:
- сначала добиваетесь вывода данных с помощью (хуков, шаблонов WooCommerce);
- затем поправляется визуализацию нового блока данных с помощью стилей CSS.
Удачи в развитии проекта!
 

angelpnz

Новичок
#11
Всем привет!
Ребят, уже вторую неделю парюсь, подскажите как вывести сумму вариационного товара ...
Пробовал ваш код вставлять и так и эдок... ну ни как...
Сайт на локалке... Тема Venedor Версия: 2.5

Css потом подтяну...

Заранее спасибо!!!
 

Вложения

searchingman

Гуру
Местный
#12
Всем привет!
Ребят, уже вторую неделю парюсь, подскажите как вывести сумму вариационного товара ...
Пробовал ваш код вставлять и так и эдок... ну ни как...
Сайт на локалке... Тема Venedor Версия: 2.5

Css потом подтяну...

Заранее спасибо!!!
В тех.поддержку платной премиум темы Venedor - WordPress + WooCommerce Theme обращались?
Что ответили?
 

angelpnz

Новичок
#13
Последнее редактирование:
Сверху Снизу