• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

    Мы активно растущий клуб по WordPress и нам нужна помощь каждого человека, в том числе и Ваша! Не стесняйтесь и станьте частью большого сообщества.
    Мы делимся новостями, отытом и полезными советами! Пройдите простую регистрацию, чтобы пользоваться всеми возможностями нашего клуба.

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится

Решено Woocommerce Спасибо за заказ

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
После подтверждения заказа клиентом его пересылает на пустую корзину. Как сделать, чтобы отправляло на другую страницу?
 

fixbit

НОВИЧОК

fixbit

НОВИЧОК
Сообщения
1
в functions.php шаблона добавить
PHP:
add_filter('woocommerce_get_checkout_order_received_url','my_order_received_url',0,2);
function my_order_received_url($return_url, $order){
    if( preg_match('~/order\-received/\d+\?~', $return_url) ){
        $return_url = str_replace('?','&',$return_url);
        $return_url = str_replace('/order-received/','/?order-received=',$return_url);
    }
    return $return_url;
}
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
Неужто никто не знает?
Вот нарыл код в инете :
PHP:
function mysite_woocommerce_order_status_completed( $order_id ) {
error_log( "Order complete for order $order_id", 0 );
}
add_action( 'woocommerce_order_status_completed',
'mysite_woocommerce_order_status_completed' );

Может тогда кодеры подскажут что можно написать вместо error_log? Ну хотя бы алерт с текстовкой "заказ номер 6677 принят на обработку".
 
Последнее редактирование модератором:

Fishka

ЭКСПЕРТ

Fishka

ЭКСПЕРТ
Сообщения
604
blacksm, сделайте сами сенкс пэйдж :) и пересылайте на нее...
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
Fishka, как пересылать на нее? Страница у меня уже есть. Сейчас ситуация такая что после нажатия посылает в пустую корзину, а как переслать на мою страницу я не знаю.
Вот только что определил что если из payment.php убрать <?php do_action( '<?php do_action( 'woocommerce_review_order_before_submit' ); ?>' ); ?> то заказ не будет создаваться. Как изменить этот <?php do_action( 'woocommerce_review_order_before_submit' ); ?> ?
 
Последнее редактирование модератором:

Попай

АДМИНИСТРАТОР

Попай

АДМИНИСТРАТОР
Сообщения
3,009
blacksm, Пользуйтесь специальными кнопками в редакторе для вставки кода. Под "+" есть кнопка для вставки кода.

В интернете нашел Редирект (перенаправление) в Woocommerce после покупки:
PHP:
add_action( 'template_redirect', 'wc_custom_redirect_after_purchase' );
function wc_custom_redirect_after_purchase() {
    global $wp;
 
    if ( is_checkout() && ! empty( $wp->query_vars['order-received'] ) ) {
        wp_redirect( 'http://www.yoururl.com/your-page/' );
        exit;
    }
}

Проверять некогда, да и не на чем. Так что тестируйте. По результатам будьте добры напишите тут, что у вас получилось.
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
В@Попай, ничего не происходит. Вернее все происходит как раньше. Так как опыта с WP практически нет, то не сразу понял что происходит. Теперь думаю я понял в чем проблема: вместо точно чтобы переходить на так называемый эндпоинт "/checkout/order-received/" (в котором объявляется клиенту выполнившему заказ благодарность) - сайт перенаправляет клиента на эндпойнт "/cart/". А вот в коде происходит это неправильное перенаправления я так и не могу найти. Может кто знает?

Вот эндпоинты которые прописаны у меня в настройках woocom merce:endpoints.png
Эндпоинты оформления заказа
Эндпоинты добавляются к URL вашей страницы для обработки определенных действий в процессе оформления заказа. Они должны быть уникальными.
Оплатить = order-pay
Заказ принят = order-received
Добавить метод оплаты = add-payment-method
 

Попай

АДМИНИСТРАТОР

Попай

АДМИНИСТРАТОР
Сообщения
3,009
blacksm, Ради вас поставил себе тестовый сайт с Woocommerce. Протестировал и все нормально работает, перекидывает на yoururl.com/your-page/ Так что смотрите у себя настройки Woocommerce, что-то вы там намудрили.
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
blacksm, Ради вас поставил себе тестовый сайт с Woocommerce. Протестировал и все нормально работает, перекидывает на yoururl.com/your-page/ Так что смотрите у себя настройки Woocommerce, что-то вы там намудрили.
1. Это при использовании хука "wc_custom_redirect_after_purchase"?
2. Это же сайт посвященный Wordpress-у. Странно если бы тут все были те у кого на сайте джумла установлена!!!! Я к тому что и у админов должен был быть WP где-то в доступе.
 

Попай

АДМИНИСТРАТОР

Попай

АДМИНИСТРАТОР
Сообщения
3,009
blacksm, Да. Вот ничего не настраивал. Вставил только код, который вам привел. Провел тестовую покупку и все переадресовалось.
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
Так или иначе проблема все равно существует. Сегодня поставил на отдельном сервере wp/wc/мою тему и использовал как первоначальный источник. Подменил файлы на своем сайте из свежеустановленного сервера- проблема сохранилась((( теперь думаю что возможно проблема либо в плагине которого либо в БД. буду рыть, обязательно отпишусь
 

Попай

АДМИНИСТРАТОР

Попай

АДМИНИСТРАТОР
Сообщения
3,009
и использовал как первоначальный источник. Подменил файлы на своем сайте из свежеустановленного сервера- проблема сохранилась(((
Вот тут я не понял, что вы вообще делалиo_O. Я не написал, может вы не так делаете. Код который я приводил выше надо вставлять в функцию functions.php вашего шаблона. И все чистый WP и чистый WC больше ничего и всё должно работать.
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
Вот тут я не понял, что вы вообще делалиo_O. Я не написал, может вы не так делаете. Код который я приводил выше надо вставлять в функцию functions.php вашего шаблона. И все чистый WP и чистый WC больше ничего и всё должно работать.
Я понял, что Вы установили с нуля wp/wc и проверили тот хук про который я говорил. Результатом Вашей проверки оказалось что все работает. Тогда вопрос почему у меня не работает? я решил что проблема в каком-нибудь шаблоне или скрипте. Чтобы это отсечь я взял тоже чистую сборку и начал из нее брать файлы и заменять на моем рабочем сайте. Оказалось что дело не в шаблонах/скриптах - проблема сохранилась.
________теперь решение_________
Сейчас я перебрал все установленные плагины на рабочем сайте - сначала отключил все и потом по одному начал включать и проверять. Оказалось что проблема в плагине WooCommerce Custom Payment Gateways. Этот плагин добавляет дополнительные методы оплаты. Если пользователь при оформлении заказа выбирает метод созданный при помощи этого плагина, то он после оформления заказа попадает в пустую корзину. Если пользователь выбирает один из стандартных методов оплаты (я имею ввиду те методы которые по умолчанию включены в wc) то работает и хук и без хука.
В настройках каждого метода оплаты (сделанного при помощи этого плагина) есть поле Instructions (Instructions that will be added to the thank you page.) Теперь видимо я начну читать инструкцию к данному плагину, так как отказаться от него не могу.
 

Попай

АДМИНИСТРАТОР

Попай

АДМИНИСТРАТОР
Сообщения
3,009
Рад, что нашли причину проблемы.

Только можно было немного облегчить поиски, не надо было по очереди заменять файлы шаблона, а сразу установить шаблон по умолчанию от WordPress. Если все заработало, то проблема в шаблоне. Если нет, то уже отключаем все плагины и смотрим результат. Если заработало, то по очереди включаем плагины и отслеживаем работу. Если и с отключенными плагинами не заработало, то чешем репу и думаем дальше, что за херня творится. Но главное не паниковать и идем сюда на форум просим о помощи. Найдутся добрые люди, которые всегда помогут. Я обычно так делаю.;)
 

blacksm

ПРОВЕРЕННЫЙ

blacksm

ПРОВЕРЕННЫЙ
Сообщения
29
ну и собственно чтобы закрыть тему решением ее явилось редактирование способа оплаты (плагины->редактор->WooCommerce Custom Payment Gateways->выбрать нужный метод и изменить в нем перенаправление на такое :

PHP:
// Remove cart
//$woocommerce->cart->empty_cart();
WC()->cart->empty_cart();

// Return thankyou redirect
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order )
);
 
Последнее редактирование модератором:
Сверху