@lorab

Как поправить код, чтобы он создавал автоматический 301 редирект?

Мне нужно перемещать в корзину товары которых нет в наличии и эти товары были изменены последний раз более 60 дней назад.
Поиск дал результат - есть код и он работает.
Код взят отсюда https://stackoverflow.com/questions/72749347/remov...

add_action('init', 'automatically_trash_sold_items_in_woocommerce_callback');
    function automatically_trash_sold_items_in_woocommerce_callback() {
    
        // Get any existing copy of our transient data
        if ( false === ( $automatically_trash_sold_items_in_woocommerce = get_transient( 'automatically_trash_sold_items_in_woocommerce' ) ) ) {
            
            // It wasn't there, so regenerate the data and save the transient
            global $wpdb;
            $wpdb->query( "UPDATE {$wpdb->posts} P JOIN {$wpdb->postmeta} PM ON P.ID = PM.post_id SET P.post_status='trash' WHERE P.post_type='product' and PM.meta_key='_stock_status' AND PM.meta_value='outofstock' AND DATE_SUB( now(), INTERVAL 10 DAY ) > p.post_modified");
    
            set_transient( 'automatically_trash_sold_items_in_woocommerce', true, 12 * HOUR_IN_SECONDS );
          }


В моей версии на сайте код поправлен на "INTERVAL 60 DAY"

Насколько я понимаю, что мне нужно настроить каждому урл товара, который будет попадать "в корзину" 301 редирект.
Вопрос 1: Будет ли ошибка если для каждого товара который будет перемещен в корзину будет настроен редирект например на страницу каталога? Не навредит ли это?

Я использую для перенаправлении плагин Yoast Premium и перенаправления работают только если я вручную удаляю продукт (тогда появляется предложение - сделать перенаправление). Этим кодом все товары перемещаются в корзину без уведомлений и предложений от Yoast Premium, страница отдает 404 после перемещения "в корзину".
Вопрос 2: Какие изменения нужно внести в этот код, чтобы после перемещения товара "в корзину" создавался 301 редирект в Yoast Premium?
Подойдет ли для моих целей этот фрагмент кода
wp_redirect(home_url());?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Редирект предназначен для перенаправления на новую локацию того же объекта, если он есть. Для того чтобы указать что товар недоступен/отсутствует в базе используется 404 код, ну и страница должна быть соответствующая, редирект не нужен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lorab Автор вопроса
Query Monitor отображает ошибку в панели администратора. Код работает, но видимо может создать проблемы.

639c94f20faaa388625828.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы