Dzisiaj na moją skrzynkę trafiło dość ciekawe pytanie, które po krótkich poszukiwaniach nie doczekało się odpowiedzi na forach czy blogach, a więc postanowiłem to nadrobić :)
Używam WooCommerce — Od pewnego czasu obserwuję duży ruch na stronie koszyka lub wprowadzania danych zamówienia, podczas gdy w koszyku nie znajdują się żadne produkty i pomyślałam, aby zamiast przycisku powrotu do strony sklepu zrobić zwykłe przekierowanie, ale nie znalazłam żadnej prostej recepty na wdrożenie tego w swoim sklepie.
Przekierowanie pustego koszyka lub strony zamówienia na stronę sklepu w WooCommerce
Aby przekierować pusty koszyk lub stronę zamówienia bez produktów w nim – wystarczy wkleić poniższy kod do pliku functions.php motywu (najlepiej potomnego) lub wtyczki funkcyjnej.
add_action( 'template_redirect', 'przekieruj_pusty_koszyk' );
function przekieruj_pusty_koszyk() {
if ( class_exists( 'WooCommerce' ) ) {
$shop_url = get_permalink(woocommerce_get_page_id('shop'));
if (( is_cart() || is_checkout()) && 0 == WC()->cart->get_cart_contents_count() && ! is_wc_endpoint_url( 'order-received' ) && ! is_wc_endpoint_url( 'order-pay' ) ) {
wp_safe_redirect( $shop_url );
exit;
}
}
}
Przekierowanie pustego koszyka lub strony zamówienia na stronę główną w WooCommerce
Na wszelki wypadek podaję kod, który zamiast przekierować użytkownika na stronę sklepu, przekieruje go na stronę główną, gdzie zwykle mamy najsilniejsze przekazy marketingowe – promocje, oferty specjalne, nowości etc.
Możesz użyć tylko jeden kod jednocześnie.
add_action( 'template_redirect', 'przekieruj_pusty_koszyk' );
function przekieruj_pusty_koszyk() {
if ( class_exists( 'WooCommerce' ) ) {
if (( is_cart() || is_checkout()) && 0 == WC()->cart->get_cart_contents_count() && ! is_wc_endpoint_url( 'order-received' ) && ! is_wc_endpoint_url( 'order-pay' ) ) {
wp_safe_redirect( home_url() );
exit;
}
}
}
Jak dodać ten kod do WordPress?
Kod ten dodaj do motywu w pliku functions.php, najlepiej motywu potomnego lub własnej wtyczki funkcyjnej. Przed „?>” na końcu pliku (może tego fragmentu nie być i wtedy po prostu na końcu). Więcej szczegółów w artykule: Własny kod w WordPress.