Я работаю над сайтом электронной коммерции на основе WooCommerce и темы Divi. В частности, когда корзина пуста, я получаю пустую страницу (хотя верхний и нижний колонтитулы присутствуют). Я хотел бы знать, есть ли способ использовать специальную страницу для пустой корзины.
Я уже пробовал добавить этот код в functions.php
:
function custom_redirect_empty_cart() {
// Replace 123 with the ID of your custom page
$empty_cart_page_id = 123; // Change this to your page ID
if ( WC()->cart->is_empty() && !is_cart() && !is_checkout() ) {
wp_redirect( get_permalink( $empty_cart_page_id ) );
exit;
}
}
add_action( 'template_redirect', 'custom_redirect_empty_cart' );
Но это не сработало.
Вы можете помочь мне? Большое спасибо!
Не могли бы вы попробовать перепроверить правильность идентификатора страницы в коде, а также попытаться сбросить постоянную ссылку.
Вы можете сделать это, перейдя в «Настройки» > «Постоянные ссылки» и затем нажав «Сохранить изменения».
Не могли бы вы попробовать скопировать файл cars-empty.php из плагина WooCommerce (wp-content/plugins/woocommerce/templates/cart/cart-empty.php) в папку вашей темы, сохраняя путь следующим образом: wp-content /themes/divi/woocommerce/cart/cart-empty.php.
Отредактируйте этот новый файл, чтобы он показывал контент, который вы хотите отображать пользователю, когда корзина пуста.
Более подробную информацию о шаблоне пустой корзины вы можете найти здесь.
https://woocommerce.github.io/code-reference/files/woocommerce-templates-cart-cart-empty.html
Страница, на которую вы перенаправляете, должна быть создана + идентификатор должен быть идентификатором, а не адресом страницы. Рабочий код приведен ниже.
add_action( 'template_redirect', 'custom_redirect_empty_cart' );
function custom_redirect_empty_cart(){
$empty_cart_page_id = 52;
if ( WC()->cart->is_empty() && is_cart() && !is_checkout() ){
wp_safe_redirect(get_permalink($empty_cart_page_id));
exit;
}
}
Решено! Моя проблема была связана со структурой постоянных ссылок, которая вызывала проблемы! После сброса все работает нормально. Большое спасибо!