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;
}
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' );
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;
}
}
1. Это при использовании хука "wc_custom_redirect_after_purchase"?blacksm, Ради вас поставил себе тестовый сайт с Woocommerce. Протестировал и все нормально работает, перекидывает на yoururl.com/your-page/ Так что смотрите у себя настройки Woocommerce, что-то вы там намудрили.
Вот тут я не понял, что вы вообще делали. Я не написал, может вы не так делаете. Код который я приводил выше надо вставлять в функцию functions.php вашего шаблона. И все чистый WP и чистый WC больше ничего и всё должно работать.и использовал как первоначальный источник. Подменил файлы на своем сайте из свежеустановленного сервера- проблема сохранилась(((
Я понял, что Вы установили с нуля wp/wc и проверили тот хук про который я говорил. Результатом Вашей проверки оказалось что все работает. Тогда вопрос почему у меня не работает? я решил что проблема в каком-нибудь шаблоне или скрипте. Чтобы это отсечь я взял тоже чистую сборку и начал из нее брать файлы и заменять на моем рабочем сайте. Оказалось что дело не в шаблонах/скриптах - проблема сохранилась.Вот тут я не понял, что вы вообще делали. Я не написал, может вы не так делаете. Код который я приводил выше надо вставлять в функцию functions.php вашего шаблона. И все чистый WP и чистый WC больше ничего и всё должно работать.
// Remove cart
//$woocommerce->cart->empty_cart();
WC()->cart->empty_cart();
// Return thankyou redirect
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order )
);
Дорогой Гость, Не упустите супер шанс!
Ошеломительное снижение на ПОЖИЗНЕННЫЙ статус "СВОЙ"
по цене 1 месяца за 499 руб.
Это доступ ко всем:
Цена всего для 1000 человек. Осталось 14 мест.
Позже цена уже удвоиться!
Не тяните и успейте получить доступ к всему по выгодной цене!