Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Mostrar contenido solo a usuarios que compraron un producto en WooCommerce

Recientemente en un proyecto se necesitaba que cierta contenido de una web sólo sea accesible para usuarios que compraron un determinado producto, al ser un requerimiento específico se puede solucionar a través de código.

 

Generalidades

El contenido que queremos restringir puede ser una o varias páginas y sólo serán accesibles si se compró un determinado producto, si el usuario no esta registrado o no ha comprado el producto entonces se redireccionará a la página de producto.

 

Código para mostrar una página sólo a usuarios que compraron un determinado producto

En el siguiente código debes cambiar los valores de la variable $id_pages e $id_product, puedes agregar más de un ID de página o entrada.

Puedes agregar el siguiente código como parte del archivo functions.php de tu tema hijo o usando algún plugin de Snippets.
add_action('template_redirect', 'dmcs_validate_show_page' );

function dmcs_validate_show_page():void{
        global $post;

        $id_pages = [ 2724 ]; // IDs de las páginas que se quiere restringir
        $id_product = 2704; // ID del producto que se debe comprar para ver las páginas


        if ( ! $post || ! in_array( $post->ID, $id_pages, true ) ) {
                return;
        }

        $product_url = get_permalink( $id_product );
        if ( ! is_user_logged_in() ) {
                wp_redirect($product_url);
        }

        $user = wp_get_current_user();
        if ( ! wc_customer_bought_product( $user->user_email, $user->ID, $id_product ) ) {
                wp_redirect($product_url);
        }
}

 
En el código anterior:

  • Usamos el Hook template_redirect que hace referencia a la función dmcs_validate_show_page
  • Dentro de la función definimos las páginas que serán restringidas y el id del producto que debe comprarse para verlas
  • Definimos la variable global $post, que nos permitirá comprobar si estoy en una determinada página
  • Comprobamos si el usuarios esta registrado, sino lo redireccionamos a la página de producto
  • Con la función wc_customer_bought_product comprobamos si el usuario compró el producto, sino lo redireccionamos a la página de producto

 

Conclusión

Como has podido comprobar, puedes restringir cierto contenido de tu sitio web para usuarios que adquirieron un determinado producto directamente a través de código tal como hemos visto en este artículo.

 

La entrada Mostrar contenido solo a usuarios que compraron un producto en WooCommerce es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires