Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Почитал форум. Вопрос задавался неоднократно, но модераторы почему-то игнорируют его. Решил создать тему. Внимание, вопрос:
Можно ли с помощью плагина woocommerce оформлять заказ без оплаты?
Т.е. оплата в любом случае при получении, а не через сайт. Нужно, чтобы данные с чекаута просто шли на почту администратору.
Почему именно woocommerce:
Потому что тема заточена под него и все красиво работает.
Что делал:
Отключал все платежные системы - "Неправильный способ оплаты."
Включал платежку "Наличными" - "К сожалению, у нас не предусмотрены доступные методы оплаты для вашей страны. Пожалуйста, свяжитесь с нами если вам необходима консультация или специальные условия." хотя во всех настройках выбрано "Все страны"
ройтесь в базовых настройках WC. Там есть список доступных стран. Кроме того, в настройках доставки выставляются доступные страны
Еще вариант - Вы вводите левые данные в поля Страна и почтовый индекс, в связи с чем система теряется.
БУГАГА
обновился до 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
В принципе, я (с учетом своих неполных знаний и понимания функционирования движка) вижу 2 варианта решения:
1. оформить другой способ оплаты (например, оплата чеками) в качестве наложенного платежа. Как-то так:
Недостаток: занятость "чека" для других способов оплаты, (например - "наличными при самовывозе"), ну мало ли.
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_page( wc_get_page_id( 'checkout' ) ) && 0 < get_query_var( 'order-pay' ) ) {
$order_id = absint( get_query_var( 'order-pay' ) );
$order = new WC_Order( $order_id );
// Test if order needs shipping.
$needs_shipping = false;
if ( 0 < 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 ) > 1 ) {
$check_method = false;
} elseif ( sizeof( $chosen_shipping_methods ) == 1 ) {
$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 ) === 0 ) {
$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_page( wc_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 ) > 1 ) {
$check_method = false;
} elseif ( sizeof( $chosen_shipping_methods ) == 1 ) {
$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 ) === 0 ) {
$found = true;
break;
}
}
if ( ! $found )
return false;
}
return parent::is_available();
}
Пока вроде работает нормально, хотя запросто могут возникнуть ситуации, когда не сработает. Если кто может - потестите, отзовитесь.
Нашел тему на WP форуме, аналогичная проблема, пока решения нет, но за темой последить можно.
Поставил доставку.
Для авторизированных пользователей заказ оформляет, но не присылает e-mail (может проблема и на моей стороне).
Для неавтор. товар добавляет в корзину, но когда захожу в корзину, то она пуста, хотя без доставки корзина работала. Stork.71, спасибо, сейчас буду пробовать. Результат отпишу.
это произошло после замены кода по моим инструкциям? Если да, то верните как было )
Плагины и WP обновлены?
Попробуйте деактивировать все плагины, и повключать их снова. Почистить куки.
это произошло после замены кода по моим инструкциям? Если да, то верните как было )
Плагины и WP обновлены?
Попробуйте деактивировать все плагины, и повключать их снова. Почистить куки.
Хочу подключить платежную систему на сайт WP тема wotique. Рассматриваю пока pay2pay и sprypay.ru. Однако, при сравнениии выяснил в pay2pay нет комиссии за вывод средств (скриншот 1), но как я зная эта система достаточно молодая. У sprypay.ru имеется комиссия за вывод средств продавцов (скриншот 2), но эта система уже достаточно себя зарекомендовала, а это показатель надежности. Кто сталкивался с этими системами или с другими платежными системами, что порекомендуете?
может кто в курсе ситуации! у меня в woocommerce в способах оплаты нету "платежей наличными" . может это както настраиваеться отдельно, либо сторонним плагином? подскажите .
может кто в курсе ситуации! у меня в woocommerce в способах оплаты нету "платежей наличными" . может это както настраиваеться отдельно, либо сторонним плагином? подскажите .
наложенный платеж - это наличка? например клиент не хочет картой хочет наличкой при получении или самовывозе!
разве наложенный платеж это не через почту?