بصفتي مستقلاً لتطوير WooCommerce ، أكرر كل يوم العديد من عمليات الترميز التي تجعلني أضيع الوقت. واحد منهم هو: ” كيف أحصل على ____ إذا كان لدي متغير / كائن الطلب $؟ “.
على سبيل المثال ، “كيف يمكنني الحصول على إجمالي الطلب “؟ أو “كيف يمكنني الحصول على عناصر الطلب “؟ أو ربما معرّف الطلب ومعرف العميل ومعلومات الفوترة وطريقة الدفع وإجمالي المبالغ المستردة وما إلى ذلك … نأمل أن تساعدك هذه المقالة في توفير الوقت أيضًا!
كما رأينا في مواد أخرى، الحصول على معلومات المنتج من $ الكائن المنتج و الحصول على عربة معلومات من $ عربة الكائن ، لا يمكن دائما أن يكون لديك إمكانية الوصول المباشر إلى متغير النظام $.
في بعض الأحيان ، قد يتوفر لديك $ order_id على سبيل المثال. في هذا السيناريو ، يمكنك “الحصول” على كائن الطلب باستخدام وظيفة wc_get_order WooCommerce.
من الممكن أيضًا الحصول على معلومات طلب $ إذا كنت في قالب بريد إلكتروني. يمكن أن يكون هذا مفيدًا في إظهار معلومات طلب الدولار الإضافية في اتصالات المعاملات الخاصة بك أو تشغيل وظائف مخصصة. في كلتا الحالتين ، استمتع!
1. لديك حق الوصول إلى $ order متغير
تستخدم الخطافات (do_action و application_filters) وسيطات إضافية يتم تمريرها إلى الوظيفة. إذا سمحوا لك باستخدام الكائن “$ order” ، فأنت تعمل. إليك كيفية الحصول على جميع معلومات الطلب:
// Get Order ID and Key
$order->get_id();
$order->get_order_key();
// Get Order Totals $0.00
$order->get_formatted_order_total();
$order->get_cart_tax();
$order->get_currency();
$order->get_discount_tax();
$order->get_discount_to_display();
$order->get_discount_total();
$order->get_fees();
$order->get_formatted_line_subtotal();
$order->get_shipping_tax();
$order->get_shipping_total();
$order->get_subtotal();
$order->get_subtotal_to_display();
$order->get_tax_location();
$order->get_tax_totals();
$order->get_taxes();
$order->get_total();
$order->get_total_discount();
$order->get_total_tax();
$order->get_total_refunded();
$order->get_total_tax_refunded();
$order->get_total_shipping_refunded();
$order->get_item_count_refunded();
$order->get_total_qty_refunded();
$order->get_qty_refunded_for_item();
$order->get_total_refunded_for_item();
$order->get_tax_refunded_for_item();
$order->get_total_tax_refunded_by_rate_id();
$order->get_remaining_refund_amount();
// Get and Loop Over Order Items
foreach ( $order->get_items() as $item_id => $item ) {
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$product = $item->get_product();
$product_name = $item->get_name();
$quantity = $item->get_quantity();
$subtotal = $item->get_subtotal();
$total = $item->get_total();
$tax = $item->get_subtotal_tax();
$taxclass = $item->get_tax_class();
$taxstat = $item->get_tax_status();
$allmeta = $item->get_meta_data();
$somemeta = $item->get_meta( '_whatever', true );
$product_type = $item->get_type();
}
// Other Secondary Items Stuff
$order->get_items_key();
$order->get_items_tax_classes();
$order->get_item_count();
$order->get_item_total();
$order->get_downloadable_items();
$order->get_coupon_codes();
// Get Order Lines
$order->get_line_subtotal();
$order->get_line_tax();
$order->get_line_total();
// Get Order Shipping
$order->get_shipping_method();
$order->get_shipping_methods();
$order->get_shipping_to_display();
// Get Order Dates
$order->get_date_created();
$order->get_date_modified();
$order->get_date_completed();
$order->get_date_paid();
// Get Order User, Billing & Shipping Addresses
$order->get_customer_id();
$order->get_user_id();
$order->get_user();
$order->get_customer_ip_address();
$order->get_customer_user_agent();
$order->get_created_via();
$order->get_customer_note();
$order->get_address_prop();
$order->get_billing_first_name();
$order->get_billing_last_name();
$order->get_billing_company();
$order->get_billing_address_1();
$order->get_billing_address_2();
$order->get_billing_city();
$order->get_billing_state();
$order->get_billing_postcode();
$order->get_billing_country();
$order->get_billing_email();
$order->get_billing_phone();
$order->get_shipping_first_name();
$order->get_shipping_last_name();
$order->get_shipping_company();
$order->get_shipping_address_1();
$order->get_shipping_address_2();
$order->get_shipping_city();
$order->get_shipping_state();
$order->get_shipping_postcode();
$order->get_shipping_country();
$order->get_address();
$order->get_shipping_address_map_url();
$order->get_formatted_billing_full_name();
$order->get_formatted_shipping_full_name();
$order->get_formatted_billing_address();
$order->get_formatted_shipping_address();
// Get Order Payment Details
$order->get_payment_method();
$order->get_payment_method_title();
$order->get_transaction_id();
// Get Order URLs
$order->get_checkout_payment_url();
$order->get_checkout_order_received_url();
$order->get_cancel_order_url();
$order->get_cancel_order_url_raw();
$order->get_cancel_endpoint();
$order->get_view_order_url();
$order->get_edit_order_url();
// Get Order Status
$order->get_status();
2. لديك حق الوصول إلى المتغير order_id $
إذا كان لديك حق الوصول إلى معرّف الطلب (مرة أخرى ، عادةً ما يمنحك do_action أو application_filters هذا) ، فعليك الحصول على كائن الطلب أولاً. ثم افعل نفس الأشياء كما هو مذكور أعلاه.
// Get $order object from order ID
$order = wc_get_order( $order_id );
// Now you have access to (see above)...
if ( $order ) {
$order->get_formatted_order_total( );
// etc.
// etc.
}
3. لديك حق الوصول إلى متغير البريد الإلكتروني دولار
إذا كنت تعمل مع رسائل WooCommerce الإلكترونية ، فغالبًا ما يكون لديك كائن البريد الإلكتروني $ متاحًا كمعامل. من أجل الحصول على الكائن من ذلك ، تحتاج إلى خطوة إضافية. ثم افعل نفس الأشياء كما هو مذكور أعلاه.
// Get $order object from $email
$order = $email->object;
// Now you have access to (see above)...
if ( $order ) {
$order->get_id();
$order->get_formatted_order_total( );
// etc.
// etc.
}
المنشورات ذات الصلة:
WooCommerce: بحث متقدم بالطلب
شرحت قاعدة بيانات WooCommerce: كيف تعمل وأين تجد البيانات
WooCommerce: كيفية طباعة الطلبات تلقائيًا