كنت أرغب في نشر هذا الدليل لفترة طويلة. باعتباري مستقلاً لتطوير WooCommerce ، أكرر كل يوم العديد من العمليات التي تجعلني أضيع الوقت … وإحدى هذه العمليات هي بالفعل ” كيف أحصل على ____ إذا كان لدي متغير / كائن $ product؟ “.
على سبيل المثال ، “كيف يمكنني الحصول على رمز التخزين التعريفي للمنتج “؟ أو “كيف يمكنني الحصول على وصف موجز للمنتج “؟ أو ربما مستوى مخزون المنتج ، وفئة الشحن ، وفئة الضريبة ، والسعر ، والسعر العادي ، وسعر البيع ، وما إلى ذلك … نأمل أن توفر لك هذه المقالة الوقت.
بالطبع ، لا يمكنك دائمًا الوصول إلى متغير المنتج $ (أنا أتحدث عن خطافات WooCommerce على سبيل المثال) ، لذلك أنت مطالب أيضًا بفهم سيناريو حالتك ومعرفة ما إذا كان يمكنك “الحصول” على كائن المنتج $ هذا في آخر طريق.
على سبيل المثال ، قد تعرف $ product_id. في هذه الحالة ، يجب أن تجد طريقة “للحصول على كائن المنتج $ من $ product_id” – تجد هذا المثال أدناه.
قد يكون الطلب أو صفحات سلة التسوق من الأمثلة الأخرى. مرة أخرى ، هنا لا يتوفر لديك بالفعل منتج بالدولار ، لذلك عليك أن تمر عبر عناصر الطلب / عربة التسوق و “الحصول عليها”. بعد ذلك ، يمكنك حساب والحصول على أي معلومة تطلبها من منتج $. يتمتع!
1. يمكنك الوصول إلى $ product المتغير
تستخدم الخطافات (do_action و application_filters) وسيطات إضافية يتم تمريرها إلى الوظيفة. إذا سمحوا لك باستخدام الكائن “$ product” فأنت في العمل. بدلاً من ذلك ، يمكنك إعلان “منتج $ العالمي” داخل وظيفتك.
في كلتا الحالتين ، إليك كيفية الحصول على جميع معلومات المنتج:
// Get Product ID
$product->get_id();
// Get Product General Info
$product->get_type();
$product->get_name();
$product->get_slug();
$product->get_date_created();
$product->get_date_modified();
$product->get_status();
$product->get_featured();
$product->get_catalog_visibility();
$product->get_description();
$product->get_short_description();
$product->get_sku();
$product->get_menu_order();
$product->get_virtual();
get_permalink( $product->get_id() );
// Get Product Prices
$product->get_price();
$product->get_regular_price();
$product->get_sale_price();
$product->get_date_on_sale_from();
$product->get_date_on_sale_to();
$product->get_total_sales();
// Get Product Tax, Shipping & Stock
$product->get_tax_status();
$product->get_tax_class();
$product->get_manage_stock();
$product->get_stock_quantity();
$product->get_stock_status();
$product->get_backorders();
$product->get_sold_individually();
$product->get_purchase_note();
$product->get_shipping_class_id();
// Get Product Dimensions
$product->get_weight();
$product->get_length();
$product->get_width();
$product->get_height();
$product->get_dimensions();
// Get Linked Products
$product->get_upsell_ids();
$product->get_cross_sell_ids();
$product->get_parent_id();
// Get Product Variations and Attributes
$product->get_children(); // get variations
$product->get_attributes();
$product->get_default_attributes();
$product->get_attribute( 'attributeid' ); //get specific attribute value
// Get Product Taxonomies
$product->get_categories();
$product->get_category_ids();
$product->get_tag_ids();
// Get Product Downloads
$product->get_downloads();
$product->get_download_expiry();
$product->get_downloadable();
$product->get_download_limit();
// Get Product Images
$product->get_image_id();
$product->get_image();
$product->get_gallery_image_ids();
// Get Product Reviews
$product->get_reviews_allowed();
$product->get_rating_counts();
$product->get_average_rating();
$product->get_review_count();
2. يمكنك الوصول إلى $ product_id
إذا كان لديك حق الوصول إلى معرّف المنتج (مرة أخرى ، عادةً ما تجعل do_action أو application_filters هذا ممكنًا لك) ، فيجب عليك الحصول على كائن المنتج أولاً. بعد ذلك ، افعل نفس الأشياء كما هو مذكور أعلاه.
// Get $product object from product ID
$product = wc_get_product( $product_id );
// Now you have access to (see above)...
$product->get_type();
$product->get_name();
// etc.
// etc
3. لديك حق الوصول إلى كائن الطلب أو معرف الطلب
كيف تحصل على معلومات المنتج داخل الطلب؟ في هذه الحالة ، ستحتاج إلى تكرار جميع العناصر الموجودة بالترتيب ، ثم تطبيق القواعد أعلاه.
// Get $product object from $order / $order_id
$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product = $item->get_product();
// Now you have access to (see above)...
$product->get_type();
$product->get_name();
// etc.
// etc.
}
إذا كنت ترغب في توسيع نطاق معرفتك ، فإليك مقالة أخرى حول كيفية الحصول على معلومات إضافية من كائن الطلب $ .
4. لديك حق الوصول إلى كائن عربة التسوق
كيف تحصل على معلومات المنتج داخل عربة التسوق؟ في هذه الحالة ، مرة أخرى ، ستحتاج إلى تكرار جميع العناصر الموجودة في سلة التسوق ، ثم تطبيق القواعد المذكورة أعلاه.
// Get $product object from Cart object
$cart = WC()->cart->get_cart();
foreach( $cart as $cart_item_key => $cart_item ){
$product = $cart_item['data'];
// Now you have access to (see above)...
$product->get_type();
$product->get_name();
// etc.
// etc.
}
إذا كنت ترغب في توسيع معرفتك بـ WooCommerce PHP ، فإليك مقالة أخرى حول كيفية الحصول على معلومات إضافية من كائن $ cart .
5. لديك حق الوصول إلى $ post object
في حالات معينة (مثل الواجهة الخلفية) ، يمكنك فقط الوصول إلى $ post. لذا ، كيف “نحسب” $ product من $ post؟ سهل جدا:
// Get $product object from $post object
$product = wc_get_product( $post );
// Now you have access to (see above)...
$product->get_type();
$product->get_name();
// etc.
// etc.
المنشورات ذات الصلة:
WooCommerce: كيفية إضافة أشكال متعددة إلى عربة التسوق مرة واحدة؟
WooCommerce: كيفية تحرير أسعار المنتجات بكميات كبيرة؟
WooCommerce: كيفية عرض الاختلافات بأزرار اللون / الحجم؟
WooCommerce: كيفية تمكين وضع الكتالوج؟
WooCommerce: كيفية بيع تخصيصات المنتج والإضافات
WooCommerce: كيفية إضافة خيارات منتج إضافية (الوظائف الإضافية)
WooCommerce: كيفية حساب أسعار المنتجات باستخدام الصيغ المخصصة
WooCommerce B2B: كيفية إنشاء متجر بيع بالجملة
أسعار الجملة لـ WooCommerce: الإضافات والإعداد والنصائح والمقتطفات
WooCommerce: أهم المكونات الإضافية لتوصيات المنتج