Изменить статус продуктов woocommerce с помощью функции php - PullRequest
1 голос
/ 22 мая 2019

У меня есть функция, которая помогает мне перенаправить продукт, если этот продукт больше не существует в моем филиале xml. Теперь я хочу, чтобы продукт был черновым, но перенаправил его ссылку на «Этот продукт больше не существует» - для целей SEO

Я не пробовал что-то, потому что я не знаю что. Я видел кое-что здесь, и я думаю, что мой ответ здесь, но я не знаю, как применить это:

Изменение статуса товара, если цены обновляются в Woocommerce 3

function my_is_post_to_delete( $is_post_to_delete, $post_id, $import ) {
    $redirect_url = "https://stackoverflow.com";
    if ( $import->id == 72 ) {
        $redirects = get_option( '301_redirects', array() );
        $redirects = maybe_unserialize( $redirects );

        $url_for_post = get_the_permalink( $post_id );
        $url = parse_url( $url_for_post );
        if ( $url ) {
            if ( ! array_key_exists( $url['path'], $redirects ) ) {
                $redirects[ $url['path'] ] = $redirect_url;
                update_option( '301_redirects', $redirects );
            }
        }
        return false;       
    }
}
add_filter( 'wp_all_import_is_post_to_delete', 'my_is_post_to_delete', 10, 3 );

Я ожидаю, что мой код удалит товар из моего веб-канала и перенаправит его ссылку на страницу моего сайта. В целях SEO я не могу удалить продукт для всех, мне просто нужно спрятать его из своего магазина, но сохранить ссылку на Google (также фотографии).

1 Ответ

0 голосов
/ 22 мая 2019

Вы можете использовать функцию WordPress для обновления статуса продукта, в котором существует логика product doesn't exist anymore in my affiliate xml..

function my_is_post_to_delete( $is_post_to_delete, $post_id, $import ) {
    $redirect_url = "https://stackoverflow.com";
    if ( $import->id == 72 ) {

     /* Start Here*/
     $my_product = array(
          'ID'           => $import->id,
          'post_status' => 'draft',
      );
      wp_update_post( $my_product );
      /* End Here*/

        $redirects = get_option( '301_redirects', array() );
        $redirects = maybe_unserialize( $redirects );

        $url_for_post = get_the_permalink( $post_id );
        $url = parse_url( $url_for_post );
        if ( $url ) {
            if ( ! array_key_exists( $url['path'], $redirects ) ) {
                $redirects[ $url['path'] ] = $redirect_url;
                update_option( '301_redirects', $redirects );
            }
        }
        return false;       
    }
}
add_filter( 'wp_all_import_is_post_to_delete', 'my_is_post_to_delete', 10, 3 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...