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

Решено Оформление заказа БЕЗ ОПЛАТЫ

Тема в разделе "Вопросы новичков", создана пользователем compman, 2 май 2014.

  1. compman

    compman

    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Почитал форум. Вопрос задавался неоднократно, но модераторы почему-то игнорируют его. Решил создать тему.
    Внимание, вопрос:
    Можно ли с помощью плагина woocommerce оформлять заказ без оплаты?
    Т.е. оплата в любом случае при получении, а не через сайт. Нужно, чтобы данные с чекаута просто шли на почту администратору.

    Почему именно woocommerce:
    Потому что тема заточена под него и все красиво работает.

    Что делал:
    Отключал все платежные системы - "Неправильный способ оплаты."
    Включал платежку "Наличными" - "К сожалению, у нас не предусмотрены доступные методы оплаты для вашей страны. Пожалуйста, свяжитесь с нами если вам необходима консультация или специальные условия." хотя во всех настройках выбрано "Все страны"

    Может я что-то упустил?
     
  2. alexbelkevich

    alexbelkevich

    Сообщения:
    202
    Симпатии:
    22
    Баллы:
    18
    Ну вообще наличкой.. все правильно делаете вроде бы
     
  3. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.273
    Симпатии:
    724
    Баллы:
    113
    Что-то упустили. Наличка работает прекрасно.
     
    • Согласен Согласен x 1
  4. compman

    compman

    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    не может быть проблемой то, что сайт пока на localhost?
     
  5. Stork.71

    Stork.71 Местный

    Сообщения:
    1.043
    Симпатии:
    254
    Баллы:
    83
    ройтесь в базовых настройках WC. Там есть список доступных стран. Кроме того, в настройках доставки выставляются доступные страны
    Еще вариант - Вы вводите левые данные в поля Страна и почтовый индекс, в связи с чем система теряется.
     
  6. Stork.71

    Stork.71 Местный

    Сообщения:
    1.043
    Симпатии:
    254
    Баллы:
    83
    БУГАГА
    обновился до 2.1.8 и столкнулся с той же проблемой!
    Как я понял после экспериментов, функция оплаты через наложенный платеж доступна только тогда, когда осуществляется доставка. Там можно выбрать либо конкретные варианты доставки, либо сделать наложенный платеж доступным для любого варианта, но в любом случае, если не активирована доставка и нет доступных способов доставки - то и наложенного платежа нет.
    Вопросов к форумчанам два:
    1. Проверьте пожалуйста эту теорию. То есть отключите у себя доставку и попробуйте выбрать "наложенный платеж", будет ли он доступен?
    2. Как можно снять такую привязку, возможно какие-то фильтры, хуки, ну и т.д.? Файлик, который отвечает за блок выбора оплаты - \wp-content\plugins\woocommerce\templates\checkout\review-order.php Может там что-то подредактировать можно?

    ап: нашел файлик, отвечающий за метод доставки "наложенный платеж" - wp-content\plugins\woocommerce\includes\gateways\cod\class-wc-gateway-cod.php
     
    • Согласен Согласен x 1
  7. alexbelkevich

    alexbelkevich

    Сообщения:
    202
    Симпатии:
    22
    Баллы:
    18
    охохох. Реально, наложенный платеж недоступен без доставки
     
  8. Stork.71

    Stork.71 Местный

    Сообщения:
    1.043
    Симпатии:
    254
    Баллы:
    83
    В принципе, я (с учетом своих неполных знаний и понимания функционирования движка) вижу 2 варианта решения:
    1. оформить другой способ оплаты (например, оплата чеками) в качестве наложенного платежа. Как-то так: 2014-05-06_114518.jpg
    Недостаток: занятость "чека" для других способов оплаты, (например - "наличными при самовывозе"), ну мало ли.

    2. Кромсаем код. Находим файлик \wp-content\plugins\woocommerce\includes\gateways\cod\class-wc-gateway-cod.php и заменяем шмат кода под заголовком "Check If The Gateway Is Available For Use" на код из файлика, вытащенного из старой версии, в которой все работало (2.1.6). Меняем с такого:
    PHP:
    /**
         * Check If The Gateway Is Available For Use
         *
         * @return bool
         */
        
    public function is_available() {
            
    $order null;

            if ( ! 
    WC()->cart->needs_shipping() ) {
                return 
    false;
            }

            if ( 
    is_pagewc_get_page_id'checkout' ) ) && get_query_var'order-pay' ) ) {
                
    $order_id absintget_query_var'order-pay' ) );
                
    $order    = new WC_Order$order_id );

                
    // Test if order needs shipping.
                
    $needs_shipping false;

                if ( 
    sizeof$order->get_items() ) ) {
                    foreach ( 
    $order->get_items() as $item ) {
                        
    $_product $order->get_product_from_item$item );

                        if ( 
    $_product->needs_shipping() ) {
                            
    $needs_shipping true;
                            break;
                        }
                    }
                }

                
    $needs_shipping apply_filters'woocommerce_cart_needs_shipping'$needs_shipping );

                if ( 
    $needs_shipping ) {
                    return 
    false;
                }
            }

            if ( ! empty( 
    $this->enable_for_methods ) ) {

                
    // Only apply if all packages are being shipped via local pickup
                
    $chosen_shipping_methods_session WC()->session->get'chosen_shipping_methods' );

                if ( isset( 
    $chosen_shipping_methods_session ) ) {
                    
    $chosen_shipping_methods array_unique$chosen_shipping_methods_session );
                } else {
                    
    $chosen_shipping_methods = array();
                }

                
    $check_method false;

                if ( 
    is_object$order ) ) {
                    if ( 
    $order->shipping_method ) {
                        
    $check_method $order->shipping_method;
                    }

                } elseif ( empty( 
    $chosen_shipping_methods ) || sizeof$chosen_shipping_methods ) > ) {
                    
    $check_method false;
                } elseif ( 
    sizeof$chosen_shipping_methods ) == ) {
                    
    $check_method $chosen_shipping_methods[0];
                }

                if ( ! 
    $check_method ) {
                    return 
    false;
                }

                
    $found false;

                foreach ( 
    $this->enable_for_methods as $method_id ) {
                    if ( 
    strpos$check_method$method_id ) === ) {
                        
    $found true;
                        break;
                    }
                }

                if ( ! 
    $found ) {
                    return 
    false;
                }
            }

            return 
    parent::is_available();
        }

    на такой:
    PHP:
    /**
         * Check If The Gateway Is Available For Use
         *
         * @return bool
         */
    public function is_available() {

            if ( ! empty( 
    $this->enable_for_methods ) ) {

                
    // Only apply if all packages are being shipped via local pickup
                
    $chosen_shipping_methods_session WC()->session->get'chosen_shipping_methods' );

                if ( isset( 
    $chosen_shipping_methods_session ) ) {
                    
    $chosen_shipping_methods array_unique$chosen_shipping_methods_session );
                } else {
                    
    $chosen_shipping_methods = array();
                }

                
    $check_method false;

                if ( 
    is_pagewc_get_page_id'checkout' ) ) && ! empty( $wp->query_vars['order-pay'] ) ) {

                    
    $order_id absint$wp->query_vars['order-pay'] );
                    
    $order    = new WC_Order$order_id );

                    if ( 
    $order->shipping_method )
                        
    $check_method $order->shipping_method;

                } elseif ( empty( 
    $chosen_shipping_methods ) || sizeof$chosen_shipping_methods ) > ) {
                    
    $check_method false;
                } elseif ( 
    sizeof$chosen_shipping_methods ) == ) {
                    
    $check_method $chosen_shipping_methods[0];
                }

                if ( ! 
    $check_method )
                    return 
    false;

                
    $found false;

                foreach ( 
    $this->enable_for_methods as $method_id ) {
                    if ( 
    strpos$check_method$method_id ) === ) {
                        
    $found true;
                        break;
                    }
                }

                if ( ! 
    $found )
                    return 
    false;
            }

            return 
    parent::is_available();
        }

    Пока вроде работает нормально, хотя запросто могут возникнуть ситуации, когда не сработает. Если кто может - потестите, отзовитесь.

    Нашел тему на WP форуме, аналогичная проблема, пока решения нет, но за темой последить можно.
     
    • Нравится Нравится x 1
  9. compman

    compman

    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Поставил доставку.
    Для авторизированных пользователей заказ оформляет, но не присылает e-mail (может проблема и на моей стороне).
    Для неавтор. товар добавляет в корзину, но когда захожу в корзину, то она пуста, хотя без доставки корзина работала.
    Stork.71, спасибо, сейчас буду пробовать. Результат отпишу.
     
  10. compman

    compman

    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Новая проблема: в чекауте нажимаю "Разместить заказ" и вот такое выдает http://joxi.ru/YT1xU_3JTJAnU61Lfms

    Крутится и все... в админке заказ появляется, но пользователю что делать?

    Прикол в том, что на старом домене перенаправляло на страницу о результате. После переноса такая фигня. Может что-то в базе поправить нужно?

    как я понял, не добавляется эндпоинт order-received к ссылке...
     
    Последнее редактирование: 13 май 2014
  11. Stork.71

    Stork.71 Местный

    Сообщения:
    1.043
    Симпатии:
    254
    Баллы:
    83
    это произошло после замены кода по моим инструкциям? Если да, то верните как было )
    Плагины и WP обновлены?
    Попробуйте деактивировать все плагины, и повключать их снова. Почистить куки.
     
  12. compman

    compman

    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Все обновил, почистил базу от woocommerce, отключал\активировал плагины, чистил куки - до жопы)
    Психанул, ставлю все заново
     
  13. compman

    compman

    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Проблема решилась полной очисткой базы и установки всего с нуля... Видимо, пострадало все при переносе
     
    • Согласен Согласен x 1
  14. Andr7006

    Andr7006

    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Хочу подключить платежную систему на сайт WP тема wotique. Рассматриваю пока pay2pay и sprypay.ru. Однако, при сравнениии выяснил в pay2pay нет комиссии за вывод средств (скриншот 1), но как я зная эта система достаточно молодая. У sprypay.ru имеется комиссия за вывод средств продавцов (скриншот 2), но эта система уже достаточно себя зарекомендовала, а это показатель надежности. Кто сталкивался с этими системами или с другими платежными системами, что порекомендуете? Комиссии pay2pay.jpg
     

    Вложения:

  15. alexbelkevich

    alexbelkevich

    Сообщения:
    202
    Симпатии:
    22
    Баллы:
    18
    Мне нравится робокасса
     
  16. ADv

    ADv Местный

    Сообщения:
    430
    Симпатии:
    109
    Баллы:
    43
    которая не работает с UAH
     
  17. LEON777

    LEON777

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    может кто в курсе ситуации! у меня в woocommerce в способах оплаты нету "платежей наличными" . может это както настраиваеться отдельно, либо сторонним плагином? подскажите .
     
  18. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    WooCommerce -> Настройки -> Оплата -> Наложенный платеж -> установить [V] Включить оплату наложенным платежом
     
    • Согласен Согласен x 1
  19. LEON777

    LEON777

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    наложенный платеж - это наличка? например клиент не хочет картой хочет наличкой при получении или самовывозе!
    разве наложенный платеж это не через почту?
     
  20. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.273
    Симпатии:
    724
    Баллы:
    113
    Просто наличными
     
    • Согласен Согласен x 1