Cómo crear códigos cortos de productos vistos recientemente en WooCommerce
Publicado: 2021-05-05¿Está buscando una manera de mostrar productos vistos recientemente usando un código abreviado? En esta publicación, quiero mostrarle cómo crear código abreviado de productos vistos recientemente en WooCommerce. De forma predeterminada, WooCommerce le permite usar un widget para mostrar la lista de productos que un cliente ha visto recientemente.
Esta solución integrada es muy efectiva y creemos que pronto se convertirá en un bloque de Gutenberg.
Sin embargo, es posible que desee mostrar productos relacionados en una página nueva. Esto significa que necesitas crear un shortcode.
Código abreviado de productos vistos recientemente de WooCommerce
En este breve tutorial, compartiremos cómo puede crear un código abreviado simple para mostrar productos vistos recientemente. Antes de continuar, debe tener en cuenta que esta solución implica el manejo de código.
Si no está familiarizado con el manejo de código, le recomendamos que se comunique con un desarrollador calificado de WordPress para que no arruine su sitio.
También debe crear un tema secundario para que sus cambios no se pierdan durante una actualización.
Veamos cómo puedes lograr esto.
Pasos para agregar código abreviado de productos vistos recientemente
Para crear el código abreviado, aprovecharemos el código abreviado de [productos] existente y "pasaremos" las identificaciones de los productos sin la necesidad de reinventar la rueda.
Alternativamente, puede crear un complemento que registre un código abreviado en un tema. Usaremos este método, ya que es el más fácil.
Debe crear una nueva carpeta con el nombre del complemento.
Si no ve productos recientes, es porque aún necesita tener activo un widget de Productos vistos recientemente. La cookie "woocommerce_recently_viewed" se almacena solo cuando el widget de productos vistos recientemente está en uso.
Los datos más importantes que necesitamos se almacenan en cookies llamadas $_COOKIE['woocommerce_recently_viewed'].
Puede incluir su propio código para rastrear/crear cookies si lo desea:
function custom_track_product_view() { if ( ! is_singular( 'product' ) ) { return; } global $post; if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) ) $viewed_products = array(); else $viewed_products = (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ); if ( ! in_array( $post->ID, $viewed_products ) ) { $viewed_products[] = $post->ID; } if ( sizeof( $viewed_products ) > 15 ) { array_shift( $viewed_products ); } // Store for session only wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) ); } add_action( 'template_redirect', 'custom_track_product_view', 20 );
Aquí está el código completo para el complemento:
function njengah_woocommerce_recently_viewed_products( $atts, $content = null ) { // Get shortcode parameters extract(shortcode_atts(array( "per_page" => '5' ), $atts)); // Get WooCommerce Global global $woocommerce; // Get recently viewed product cookies data $viewed_products = ! empty( $_COOKIE['woocommerce_recently_viewed'] ) ? (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ) : array(); $viewed_products = array_filter( array_map( 'absint', $viewed_products ) ); // If no data, quit if ( empty( $viewed_products ) ) return __( 'You have not viewed any product yet!', 'rc_wc_rvp' ); // Create the object ob_start(); // Get products per page if( !isset( $per_page ) ? $number = 5 : $number = $per_page ) // Create query arguments array $query_args = array( 'posts_per_page' => $number, 'no_found_rows' => 1, 'post_status' => 'publish', 'post_type' => 'product', 'post__in' => $viewed_products, 'orderby' => 'rand' ); // Add meta_query to query args $query_args['meta_query'] = array(); // Check products stock status $query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query(); // Create a new query $r = new WP_Query($query_args); // If query return results if ( $r->have_posts() ) { $content = '<ul class="rc_wc_rvp_product_list_widget">'; // Start the loop while ( $r->have_posts()) { $r->the_post(); global $product; $content .= '<li> <a href="' . get_permalink() . '"> ' . ( has_post_thumbnail() ? get_the_post_thumbnail( $r->post->ID, 'shop_thumbnail' ) : woocommerce_placeholder_img( 'shop_thumbnail' ) ) . ' ' . get_the_title() . ' </a> ' . $product->get_price_html() . ' </li>'; } $content .= '</ul>'; } // Get clean object $content .= ob_get_clean(); // Return whole content return $content; } // Register the shortcode add_shortcode("woocommerce_recently_viewed_products", "njengah_woocommerce_recently_viewed_products");
Después de agregar el código, agregue [woocommerce_recently_viewed_products per_page=”5″] en cualquier página.
Este es el resultado:
Conclusión
En este breve tutorial, hemos compartido cómo puede mostrar productos vistos recientemente usando un código abreviado.
Debe tener cuidado al editar el archivo functions.php porque si comete un error, mostrará un error crítico.
Artículos similares
- Más de 100 consejos, trucos y fragmentos Guía definitiva para ocultar WooCommerce
- Cómo usar códigos cortos de WordPress en páginas o publicaciones con ejemplo
- Cómo crear la página de mi cuenta en WooCommerce
- Cómo crear un código abreviado de inicio de sesión de WooCommerce
- Cómo importar productos WooCommerce
- Cómo configurar el precio del producto WooCommerce por kg
- Cómo crear productos programáticamente WooCommerce
- Cómo crear un producto secreto de WooCommerce
- Cómo crear WooCommerce después de iniciar sesión redirigir a la página de inicio
- Cómo crear el botón Agregar al carrito de WooCommerce por ID de producto
- Cómo crear pedidos programáticamente WooCommerce
- Cómo agregar la redirección de la página de mi cuenta de WooCommerce
- Cómo exportar productos en WooCommerce
- Cómo agregar SKU de producto en WooCommerce
- Cómo duplicar un producto en WooCommerce
- Cómo usar do_shortcode en WordPress (PHP)
- Cómo crear una página de tienda personalizada de WooCommerce
- Cómo obtener los detalles del pedido después del pago en WooCommerce
- Cómo agregar precio a un atributo en WooCommerce
- Cómo configurar el envío gratuito con un gasto mínimo en WooCommerce