WooCommerce: Afișare produse care nu mai sunt pe stoc

Lucrez destul de mult cu WordPress și Woocommerce iar de multe ori clienții m-au întrebat dacă știu o soluție prin care să se poată afișa atunci când nu mai sunt produse pe stoc, pentru că din păcate WooCommerce nu oferă această opțiune out of the box.

Am găsit o soluție destul de simplă, trebuie doar să utilizați un shortcode și să adăugați un snippet php în fișierul functions.php al temei.

După ce adăugați codul PHP de mai jos pe site-ul vostru., puteți utiliza shotcode-ul

[out_of_stock_products]

Rețineți – toate produsele trebuie să fie setate pe “Manage Stock”

/**
* @snippet Display All Products Out of Stock via a Shortcode - WooCommerce
* @how-to Watch tutorial @ https://cristianmateica.com/woocommerce-afisare-produse-care-nu-mai-sunt-pe-stoc/
* @sourcecode https://cristianmateica.com
* @author Cristian Mateica
* @compatible Woo 3.2.6
*/

add_shortcode( 'out_of_stock_products', 'bbloomer_out_of_stock_products_shortcode' );

function bbloomer_out_of_stock_products_shortcode() {
global $product, $woocommerce, $woocommerce_loop;
$columns = 4;

$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_stock',
'value' => 1,
'compare' => '<'
)
)
);
$loop = new WP_Query($args);

ob_start();

woocommerce_product_loop_start();

while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;

woocommerce_product_loop_end();

woocommerce_reset_loop();
wp_reset_postdata();

return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';
}
Comentarii