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

50 полезных сниппетов для WooCommerce. Часть первая.

Тема в разделе "WooCommerce - основы, описания, уроки.", создана пользователем D&B, 15 янв 2014.

  1. seomur

    seomur

    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    http://spigotdesign.com/change-woocommerce-new-order-reply-address-customer/#comment-95843
     
  2. Ahazhgir

    Ahazhgir

    Сообщения:
    7
    Симпатии:
    1
    Баллы:
    3
    Подскажите как установить разную минимальную сумму заказа для разных категорий товаров, Такое реализовать возможно?
     
  3. Яна Шолойко

    Яна Шолойко

    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Мне нужно было добавить в статус товара пункт "Под заказ", на Вашем форуме я нашла код
    Код:
    function add_custom_stock_type() {
        ?>
        <script type="text/javascript">
        jQuery(function(){
            jQuery('._stock_status_field').not('.custom-stock-status').remove();
        });
        </script>
        <?php 
    
        woocommerce_wp_select( array( 'id' => '_stock_status', 'wrapper_class' => 'hide_if_variable custom-stock-status', 'label' => __( 'Stock status', 'woocommerce' ), 'options' => array(
            'instock' => __( 'In stock', 'woocommerce' ),
            'outofstock' => __( 'Out of stock', 'woocommerce' ),
            'onrequest' => __( 'под заказ', 'woocommerce' ), // The new option !!!
        ), 'desc_tip' => true, 'description' => __( 'Controls whether or not the product is listed as "in stock" or "out of stock" on the frontend.', 'woocommerce' ) ) );
    }
    add_action('woocommerce_product_options_stock_status', 'add_custom_stock_type');
    function save_custom_stock_status( $product_id ) {
        update_post_meta( $product_id, '_stock_status', wc_clean( $_POST['_stock_status'] ) );
    }
    add_action('woocommerce_process_product_meta', 'save_custom_stock_status',99,1);
    
    function woocommerce_get_custom_availability( $data, $product ) {
        switch( $product->stock_status ) {
            case 'instock':
                $data = array( 'availability' => __( 'In stock', 'woocommerce' ), 'class' => 'in-stock' );
            break;
            case 'outofstock':
                $data = array( 'availability' => __( 'Out of stock', 'woocommerce' ), 'class' => 'out-of-stock' );
            break;
            case 'onrequest':
                $data = array( 'availability' => __( 'под заказ', 'woocommerce' ), 'class' => 'on-request' );
            break;
        }
        return $data;
    }
    add_action('woocommerce_get_availability', 'woocommerce_get_custom_availability', 10, 2);
    он мне помог, но не совсем. Хотелось бы сделать так, что бы при статусе "Под заказ" была еще кнопка "Заказать", при нажатии на которую товар добавлялся бы в корзину и можно было бы оформить заказ. Буду очень благодарна за помощь.
     
  4. DMax

    DMax

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Друзья, подскажите пожалуйста, как в некоторых шаблонах отключить всплывающее сообщение об Ошибке и сделать его обычным?
    Просто никто не успевает прочитать, оно быстро прячется...
    Установил снипет минимального заказа, и сообщение о нехватки минималки быстро прячется, как его можно сделать обычным сообщением, например вверху страницы?
    Заранее спасибо!
     
  5. Stork.71

    Stork.71 Местный

    Сообщения:
    1.126
    Симпатии:
    301
    Баллы:
    83
    По идее должно быть не всплываемым. Это наверное тема ваша шалит, попробуйте с другой.
    Или попробуйте конструкцию wc_add_notice( ) в сниппете заменить на echo
     
    • Симпатия Симпатия x 1
  6. DMax

    DMax

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Да, это все тема, поменять на другую не могу, попробовал ваш способ и сообщение не всплывает а показывается постоянно, даже если сума минимального заказа уже набрана, а хотелось бы чтобы это сообщение пропадало после набора минимальной сумы...
     
  7. Stork.71

    Stork.71 Местный

    Сообщения:
    1.126
    Симпатии:
    301
    Баллы:
    83
    рискну предположить, что Ваша тема переписывает функцию wc_add_notice
    Надо ее найти и переписать еще как-то :)
     
  8. DMax

    DMax

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Круто)) я бы радостью но как?)
     
  9. DMax

    DMax

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Ребят, вот код с данной темы о минимальной суме заказа
    Все работает, НО, не совсем.
    Например минималка 500, клиент набирает ровно 500 и все равно не сможет оформить заказ, но если наберет 501 - все работает, поправьте пожалуйста..
    Не хочется потерять клиента который наберет ровно на 500 или по обратной связи взорвет мозг...

    PHP:
    add_action'woocommerce_check_cart_items''spyr_set_min_total' );
    function 
    spyr_set_min_total() {
        if( 
    is_cart() || is_checkout() ) {
            global 
    $woocommerce;

            
    // минимальная сумма
            
    $minimum_cart_total 500;

            
    // сумма из корзины
            
    $total WC()->cart->subtotal;
        
            
    // Сообщение об ошибке при меньшей сумме в корзине, чем лимит
            
    if( $total <= $minimum_cart_total  ) {
                
    // Display our error message
                
    $not_enough_summa $minimum_cart_total $total;
                
    wc_add_noticesprintf'Минимальная сумма заказа: %s'
                    
    .'<br>Для оформления заказа не хватает: %s',
                    
    wc_price($minimum_cart_total),
                    
    wc_price($not_enough_summa)
                    ),
                
    'error' );
            }
        }
    }
    И остается открытый вопрос по всплывающем сообщении, как его сделать не всплывающим?
     
  10. tuxfighter

    tuxfighter Местный

    Сообщения:
    1.199
    Симпатии:
    183
    Баллы:
    63
    поставить 499 - нельзя?
     
  11. Stork.71

    Stork.71 Местный

    Сообщения:
    1.126
    Симпатии:
    301
    Баллы:
    83
    откуда же нам знать, что у Вас за тема и чего она там переписывает?
    Тогда будет писаться "минимальная сумма заказа - 499". Что за бредовые костыли?
    попробуйте в условии
    if ( $total <= $minimum_cart_total) поменять <= на <.
     
    • Симпатия Симпатия x 1
  12. DMax

    DMax

    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Класс, все работает, спасибо большое!!!))
     
  13. andrej

    andrej

    Сообщения:
    19
    Симпатии:
    1
    Баллы:
    3
    Доброго времени!
    Не могу найти, как на страницу товара добавить свой текст или код в нужном месте.

    Код общий для всех товаров!

    Подскажите пожалуйста!
    Нужно ниже вкладок, выше "Похожих товаров", код для functions.php


    Спасибо!
     
    Последнее редактирование: 13 апр 2017
  14. ge30

    ge30

    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Всем привет, помогите пожалуйста прописать условие при минимальном заказе. Минимальная сумма заказа не позволяет делать доставку почтой но если забрать из магазина то оформление возможно (условия должны позволять оформлять заказ). Использую плагин "shipping-local-pickup-plus" вот код на ограничение заказа:

    Код:
    // Minimum amount for purchase of goods
    add_action( 'woocommerce_check_cart_items', 'spyr_set_min_total' );
    function spyr_set_min_total() {
        if( is_cart() || is_checkout() ) {
            global $woocommerce;
    
            // минимальная сумма
            $minimum_cart_total = 36;
    
            // сумма из корзины
            $total = WC()->cart->subtotal;
       
            // Сообщение об ошибке при меньшей сумме в корзине, чем лимит
            if( $total <= $minimum_cart_total  ) {
                // Display our error message
                $not_enough_summa = $minimum_cart_total - $total;
                wc_add_notice( sprintf( 'Please note that our minimum order for delivery is:  %s'
                    .'<br>For delivery is not enough: %s',
                    wc_price($minimum_cart_total),
                    wc_price($not_enough_summa)
                    ),
                'error' );
    
    
          }
       }
    }

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