Cara mengurutkan produk situs wordpress berdasarkan persediaan

pemrograman


hai, saya punya situs web toko WooCommerce. Saya menggunakan kode ini untuk mengurutkan produk berdasarkan inventaris. Tapi kodenya error. Ini tidak berfungsi dengan benar. Tolong bimbing saya. Bagaimana cara mengurutkan produk situs WordPress berdasarkan inventaris?

Apa yang saya coba:

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

Solusi 1

kami tidak dapat membantu Anda: kami tidak memiliki akses ke data inventaris Anda, tidak tahu apa pesan kesalahannya (jika ada), atau tahu apa yang Anda harapkan atau dapatkan.

Jadi, itu terserah Anda.
Untungnya, Anda memiliki alat yang dapat membantu Anda mengetahui apa yang sedang terjadi: debugger. Mulai di sini: debugger php – Pencarian Google[^] dan pilih salah satu yang sepertinya cocok untuk Anda.

Letakkan breakpoint pada baris pertama fungsi, dan jalankan kode Anda melalui debugger. Kemudian lihat kode Anda, dan data Anda, lalu cari tahu apa yang harus terjadi secara manual. Kemudian satu langkah setiap baris untuk memeriksa apakah apa yang Anda harapkan terjadi adalah apa yang terjadi. Jika tidak, saat itulah Anda mempunyai masalah, dan Anda dapat menelusuri kembali (atau menjalankannya lagi dan melihat lebih dekat) untuk mencari tahu alasannya.

Maaf, kami tidak dapat melakukannya untuk Anda – saatnya Anda mempelajari keterampilan baru (dan sangat, sangat berguna): debugging!

コメント

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