raha-ab روی نسخه های 8 تا 8.2 چطور؟
این کدی که دادید روی نسخه های جدید PHP هم بدون مشکل اجرا میشه.
raha-ab پس اصلا ازش استفاده نکنم و حذفش کنم و فقط زمانی که لازم بود کد رو داخل فانکشن قرار بدم، درسته
اگر آی دی نیاز دارید کافیه موس رو ببرید روی عنوان محصول (توی لیست محصولات پیشخوان) و اون نوار ادرسی که ظاهر میشه داخلش آی دی رو زده.

اون مقدار پارامتر post
همون آی دی محصول هستش. همین آی دی برای دسته بندی ها، متغیرها، برچسب ها، مطالب، برگه ها و … هم نشون داده میشه.
raha-ab این متن از کجا اومده؟
هدفم از قراردادن این تکه کد این بود که بتونم محصول بالا رو که نوشته بود 49موجودی داره بتونم پیداکنم که موفق نشدم
چطور میتونم پیداش کنم؟
این متن داخل خود افزونه ووکامرس هست. در مسیر زیر:
woocommerce\includes\admin\meta-boxes\class-wc-meta-box-product-data.php
در خط 338 این کد هست:
// Handle stock changes.
if ( isset( $_POST['_stock'] ) ) {
if ( isset( $_POST['_original_stock'] ) && wc_stock_amount( $product->get_stock_quantity( 'edit' ) ) !== wc_stock_amount( wp_unslash( $_POST['_original_stock'] ) ) ) {
/* translators: 1: product ID 2: quantity in stock */
WC_Admin_Meta_Boxes::add_error( sprintf( __( 'The stock has not been updated because the value has changed since editing. Product %1$d has %2$d units in stock.', 'woocommerce' ), $product->get_id(), $product->get_stock_quantity( 'edit' ) ) );
} else {
$stock = wc_stock_amount( wp_unslash( $_POST['_stock'] ) );
}
}
این کد بصورت شرط هست و برای این نوشته شده که مقدار فیلد _stock
یا همون موجودی اصلی محصول رو بررسی کنه. این شرط بررسی میکنه که تعداد موجودی محصول با تعداد واقعی برابر هست یا نه. اگه تعداد موجودی ها مغایرت داشته باشه این خطا رو نشون میده. گاهی اوقات برای سایت هایی که دیتابیس سنگین دارند و بعد از سفاش و تکمیل خرید، موجودی از محصول کسر نمیشه این اتفاق میفته که باید موجودها رو دستی تنظیم کنید برای محصولی که گفته.
و در همین فایل، در خط 489 این کد هم هست:
// Handle stock changes.
if ( isset( $_POST['variable_stock'], $_POST['variable_stock'][ $i ] ) ) {
if ( isset( $_POST['variable_original_stock'], $_POST['variable_original_stock'][ $i ] ) && wc_stock_amount( $variation->get_stock_quantity( 'edit' ) ) !== wc_stock_amount( wp_unslash( $_POST['variable_original_stock'][ $i ] ) ) ) {
/* translators: 1: product ID 2: quantity in stock */
WC_Admin_Meta_Boxes::add_error( sprintf( __( 'The stock has not been updated because the value has changed since editing. Product %1$d has %2$d units in stock.', 'woocommerce' ), $variation->get_id(), $variation->get_stock_quantity( 'edit' ) ) );
} else {
$stock = wc_stock_amount( wp_unslash( $_POST['variable_stock'][ $i ] ) );
}
}
این کد هم برای بررسی و مغایرت گیری تعداد موجودی محصول البته برای متغیرها هست. همون مقدار فیلد variable_stock
رو بررسی می کنه.