Cómo ordenar los productos del sitio de WordPress según el inventario

programación


hi
I have a WooCommerce store website. I use this code to sort products based on inventory. But the code has an error. It dosent work corretct.please guide me. How to sort WordPress site products based on inventory?

Lo que he probado:

add_action('init', function() {
	if( isset($_GET['update_products_arv']) ) {
		$products = wc_get_products( [ 'limit' => 500,'offset' => 200] );
		foreach( $products as $product ){
			$total_stock = $product->get_stock_quantity() ? : 0;
			if( $product->is_type( 'variable' ) ){
				$variations = $product->get_children();
				if( !$variations ) continue;
				foreach ($variations as $variation_id) {
					$variation = wc_get_product( $variation_id );
					$total_stock += $variation->get_stock_quantity() ? : 0;
				}
			}
			update_post_meta($product->get_id(), 'xx_stock', $total_stock);
		}
	}
});

add_action('woocommerce_product_query', function($q) {
	if( ! is_admin() ) {
		$q->set('orderby', 'meta_value_num');
		$q->set('meta_key', 'xx_stock');
		$q->set('order', 'DESC');
	}
});

Solución 1

No podemos ayudarlo: no tenemos acceso a los datos de su inventario, ni idea de cuál es el mensaje de error (si lo hay), ni idea de lo que esperaba u obtuvo.

Entonces, dependerá de ti.
Afortunadamente, tienes una herramienta a tu disposición que te ayudará a descubrir qué está pasando: el depurador. Empieza aqui: Depurador de php – Búsqueda de Google[^] y elija uno que parezca funcionar para usted.

Coloque un punto de interrupción en la primera línea de la función y ejecute su código a través del depurador. Luego mire su código y sus datos y determine qué debería suceder manualmente. Luego, realice un solo paso en cada línea para verificar que lo que esperaba que sucediera sea exactamente lo que sucedió. Cuando no es así, es cuando tienes un problema y puedes retroceder (o ejecutarlo nuevamente y observar más de cerca) para descubrir por qué.

Lo sentimos, pero no podemos hacer eso por usted. Es hora de que aprenda una habilidad nueva (y muy, muy útil): ¡depurar!

コメント

タイトルとURLをコピーしました