Redirect automatico prodotti con WooCommerce

Come automatizzare la redirezione di prodotti cancellati o in bozza

CodeTutorial | di: Giovanni Invernizzi

6 Novembre 2020 — Tempo di lettura: 2'

Impostare i redirect per i prodotti che non sono più presenti nel catalogo di WooCommerce è fondamentale per almeno un paio di motivi che hanno un risvolto sia sul posizionamento che sulle opportunità di vendita.

I motivi principali sono:

  • evitare di generare 404 ed essere di conseguenza penalizzati sui motori di ricerca;
  • offrire al cliente dei prodotti da acquistare in alternativa al prodotto che non è più disponibile nel catalogo;

Se un prodotto che viene cancellato dal catalogo è un best seller la scelta più saggia e corretta è impostare un redirect dedicato, magari verso un prodotto simile.

Se invece il prodotto eliminato è di scarso interesse o se i prodotti da cancellare sono numerosi impostare un redirect può essere una perdita di tempo ma è comunque importante farlo.

Come procedere quindi per impostare un redirect automatico per tutti prodotti di scarso interesse senza creare conflitti con altri metodi per gestire le redirezioni in WordPress?

Ovviamente scrivendo una funzione con queste regole da aggiungere al tema:

  • verifica di essere nella template di WordPress per gestire i 404;
  • analizzare la URL e verificare se sono presenti determinati parametri;
  • nel caso in cui i parametri siano presenti utilizzare un redirect 301 verso una pagina;

Il codice di seguito può aiutare a capire la logica:

function paperplane_deleted_product_redirect() {
    // verifico di essere nel template per gestire i 404
    if ( is_404() ) {
        // analizzo la URL
        $url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
        // verifico che la URL contenga il parametro che mi interessa
        // in questo caso tutti i prodotti la cui URL contiene 'prodotto/categoria-prodotto-1' - ovvero la categoria di WooCommerce e la relativa voce associata
        if (strpos($url,'prodotto/categoria-prodotto-1') !== false) {
            // stabilisco una pagina di destinazione uguale per tutti i casi in cui la condizione si verifica
            $destination = 'https://nomesito.it/pagina-di-destinazione/';
            // richiamo la funzione wp_redirect() specificando la destinazione e il codice 301
            wp_redirect( $destination, 301 );
            exit;
        }
        // volendo posso impostare un'altra condizione
        // verifico che la URL contenga il parametro che mi interessa
        // in questo caso tutti i prodotti la cui URL contiene 'prodotto/categoria-prodotto-2' - ovvero la categoria di WooCommerce e la relativa voce associata
        if (strpos($url,'prodotto/categoria-prodotto-2') !== false) {
            $destination = 'https://nomesito.it/altra-pagina-di-destinazione/';
            wp_redirect( $destination, 301 );
            exit;
        }
    }
}
// mi aggangio all'hook template_redirect di WordPress per richiamare la mia funzione
add_action('template_redirect', 'paperplane_deleted_product_redirect');

Per i prodotti di maggior interesse invece è consigliato creare dei redirect ad hoc in modo da offrire al cliente una valida alternativa a ciò che non è più presente nel catalogo.

Per farlo uno la soluzione più pratica è utilizzare il plugin Redirection che nonostante offra molte possibilità è davvero semplice da utilizzare.

Articoli correlati

Vuoi spiccare il volo insieme a noi?

    info@paperplanefactory.com
    +39 339 54 36 752




    Invia