Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Калькулятор веса

Тема в разделе "Вопросы, советы и доработки.", создана пользователем dardzz, 8 апр 2015.

  1. dardzz

    dardzz

    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Доброго дня! Существует потребность суммировать общий вес заказа в корзине. Каждая из позиций каталога имеет весовое значение. Есть ли какое-то быстрое решение?
     
  2. Stork.71

    Stork.71 Местный

    Сообщения:
    1.033
    Симпатии:
    254
    Баллы:
    83
    Я не програмер, поэтому могу только посоветовать. :)
    За вывод инфы в корзине (точнее, подсчет "итого") отвечает шаблон \wp-content\plugins\woocommerce\templates\cart\cart-totals.php
    Там есть строчка <td><?php wc_cart_totals_subtotal_html(); ?></td> которая выводит предварительный "итого" стоимости, без купонов и т.д. То есть надо сделать функцию наподобие wc_cart_totals_subtotal_html() , но которая будет подбивать сумму не значений price (regular_price, sale_price), а значений weight.
    Функция wc_cart_totals_subtotal_html() находится в файле \wp-content\plugins\woocommerce\includes\wc-cart-functions.php и в свою очередь ссылается на функцию get_cart_subtotal().
    Функция get_cart_subtotal() находится в файле \wp-content\plugins\woocommerce\includes\class-wc-cart.php и выглядит так:
    PHP:
            /**
             * Gets the sub total (after calculation).
             *
             * @params bool whether to include compound taxes
             * @return string formatted price
             */
            
    public function get_cart_subtotal$compound false ) {

                
    // If the cart has compound tax, we want to show the subtotal as
                // cart + shipping + non-compound taxes (after discount)
                
    if ( $compound ) {

                    
    $cart_subtotal wc_price$this->cart_contents_total $this->shipping_total $this->get_taxes_totalfalsefalse ) );

                
    // Otherwise we show cart items totals only (before discount)
                
    } else {

                    
    // Display varies depending on settings
                    
    if ( $this->tax_display_cart == 'excl' ) {

                        
    $cart_subtotal wc_price$this->subtotal_ex_tax );

                        if ( 
    $this->tax_total && $this->prices_include_tax ) {
                            
    $cart_subtotal .= ' <small>' WC()->countries->ex_tax_or_vat() . '</small>';
                        }

                    } else {

                        
    $cart_subtotal wc_price$this->subtotal );

                        if ( 
    $this->tax_total && !$this->prices_include_tax ) {
                            
    $cart_subtotal .= ' <small>' WC()->countries->inc_tax_or_vat() . '</small>';
                        }

                    }
                }

                return 
    apply_filters'woocommerce_cart_subtotal'$cart_subtotal$compound$this );
            }
    Моего скудного понимания PHP не хватило, чтобы понять, как же в итоге в этой функции складывается (цена*количество) по каждой строчке в заказе :) В функции много спама который касается автоподсчета налогов, но нам не нужен.
    Но, скорее всего, по аналогии вполне можно сочинить функцию, которая будет складывать общий вес по всем строчкам, и прицепить ее, к примеру, на хук woocommerce_cart_totals_before_shipping
     
    • Нравится Нравится x 1