Excluir identificaciones de productos relacionados en Woocommerce

function woocommerce_output_related_products() { $args = array( 'posts_per_page' => 4, 'columns' => 4, 'orderby' => 'rand', // @codingStandardsIgnoreLine. 'post__not_in' => array(502,281) ); woocommerce_related_products( apply_filters( 'woocommerce_output_related_products_args', $args ) ); } 

Copié esta función de includes/wc-template-functions.php en las includes/wc-template-functions.php mi tema.php

Para verificar que mis cambios funcionaran, cambié posts_per_page a 3 y solo consulté 3 en lugar de 4.

Necesito excluir algunos productos, pero post__not_in no está funcionando.

¿Estoy haciendo algo mal? ¿De qué otra manera puedo excluir productos que utilizan esta función?

Estoy emitiendo los productos con esta función: woocommerce_output_related_products();

un problema tan detestable Simplemente no puedo excluir productos de aquí. ¿Alguien puede ayudar?

Intenté esto también:

 add_filter( 'woocommerce_output_related_products_args', function( $args ) { $args = wp_parse_args( array( "post__not_in" => array('502','281') ), $args ); return $args; }); 

Hice print_r ($ args) y mostró que se estaba agregando “post__not_in”, pero los productos aún están allí. Tengo la identificación correcta.

En su lugar, use el gancho de filtro de woocommerce_related_products , de esta manera:

 add_filter( 'woocommerce_related_products', 'exclude_related_products', 10, 3 ); function exclude_related_products( $related_posts, $product_id, $args ){ // HERE set your product IDs to exclude $exclude_ids = array('502','281'); return array_diff( $related_posts, $exclude_ids ); } 

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.