Comment trier les produits du site WordPress en fonction de l’inventaire

la programmation


salut, j’ai un site Web de boutique WooCommerce. J’utilise ce code pour trier les produits en fonction de l’inventaire. Mais le code comporte une erreur. Cela ne fonctionne pas correctement. Veuillez me guider. Comment trier les produits du site WordPress en fonction de l’inventaire ?

Ce que j’ai essayé :

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');
	}
});

Solution 1

nous ne pouvons pas vous aider : nous n’avons aucun accès à vos données d’inventaire, aucune idée du message d’erreur (le cas échéant), ni aucune idée de ce que vous attendiez ou avez obtenu.

Donc, ça va dépendre de vous.
Heureusement, vous disposez d’un outil qui vous aidera à comprendre ce qui se passe : le débogueur. Commencer ici: débogueur php – Recherche Google[^] et choisissez-en un qui semble fonctionner pour vous.

Placez un point d’arrêt sur la première ligne de la fonction et exécutez votre code via le débogueur. Ensuite, examinez votre code et vos données et déterminez ce qui doit se produire manuellement. Ensuite, passez chaque ligne en vérifiant que ce à quoi vous vous attendiez est exactement ce qui s’est produit. Lorsque ce n’est pas le cas, c’est à ce moment-là que vous avez un problème et vous pouvez revenir en arrière (ou l’exécuter à nouveau et regarder de plus près) pour découvrir pourquoi.

Désolé, mais nous ne pouvons pas faire cela à votre place. Il est temps pour vous d’apprendre une nouvelle (et très, très utile) compétence : le débogage !

コメント

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