ওউকমার্সে অর্ডার আইডি থেকে পণ্য আইডি পান [বন্ধ]


38

ওওকমার্স পণ্যের বিবরণ এবং অর্ডার বিশদ সম্পর্কিত সম্পর্কের সাথে আমার সমস্যা হচ্ছে। আমি ওয়াহকমার্স থিমের ভিউ অর্ডার পৃষ্ঠায় কোনও সম্পর্কিত অর্ডার আইডির পণ্য আইডি সন্ধান করতে সক্ষম নই । আমি কেবলমাত্র অর্ডার পৃষ্ঠাগুলিতে পণ্য সামগ্রী এবং পারমলিংক ইত্যাদি পেতে চাই ।

আমি অনুসন্ধান করার চেষ্টা করেছি wp_postmetaকিন্তু ভাগ্য হয়নি।

উত্তর:


68

WooCommerce 3.0+

আপনি কোনও আদেশের ক্রম আইটেমগুলি পেতে পারেন

$order = wc_get_order( $order_id );
$items = $order->get_items();

তারপরে আপনি যদি আইটেমগুলি লুপ করেন তবে আপনি সমস্ত প্রাসঙ্গিক ডেটা পেতে পারেন:

foreach ( $items as $item ) {
    $product_name = $item->get_name();
    $product_id = $item->get_product_id();
    $product_variation_id = $item->get_variation_id();
}

অ্যাডমিনের অর্ডার পৃষ্ঠাগুলি কীভাবে ডেটা পায় তা পরীক্ষা করে দেখার একটি ভাল পরামর্শ, আপনি সেখানে অনেক উত্তর খুঁজে পাবেন!

প্রাক-WooCommerce 3.0

$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
    $product_name = $item['name'];
    $product_id = $item['product_id'];
    $product_variation_id = $item['variation_id'];
}

যদি আমি কিছু মিস করছি না, তবে এটি
WooCommerce এর

এখনও আমার জন্য WooCommerce 2.4.8 এ কাজ করে তবে আপনার প্রসঙ্গের উপর নির্ভর করে আপনার $ অর্ডার_আইডি ভেরিয়েবলটি সংজ্ঞায়িত করতে হবে (কখনও কখনও এটি $ অর্ডার-> আইডিতে থাকে)।
Ewout

@mevius আমি একটি সম্পাদনা 3+ জন্য প্রেরণ ফাংশন একাধিক পণ্য পরীক্ষণের জন্য যোগ
Garet Claborn

প্রেরণের জন্য ইতিহাসের সম্পাদনা দেখুন, এটি ব্যতীত এটি ভাল না কারণ এটি আপনার সার্ভারকে
অর্থহীনভাবে

@ গ্রেটক্লেওরন যা আপনি এই ডেটা দিয়ে যা করছেন তার উপর সম্পূর্ণ নির্ভর করে। 'যেমন আছে', উদাহরণস্বরূপ এই স্নিপেট কোনওভাবেই মেমরির অপব্যয় নয়।
ইওউত

6

আমি এটিতে কাজ করেছি এবং কিছু অর্জন করেছি। যা আমি অন্য বিকাশকারীদের সাথে ভাগ করতে চাই। এটি করার পক্ষে এটি পছন্দ করা উপায় নয়, তবে জ্ঞানের জন্য আমি আমার উত্তর পোস্ট করছি।

global $wpdb;
            $result = $wpdb->get_results('select t1.order_item_id, t2.* FROM 
            wp_woocommerce_order_items as t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id
            where t1.order_id='.$order->ID);
            echo '<pre>';
            print_r($result);
            echo '</pre>'; 

আশা কেউ সাহায্য করবে।

উপরন্তু:

একাধিক ওয়েবসাইটে বা মাইগ্রেশন ইত্যাদিতে সমস্যা এড়াতে ওয়ার্ডপ্রেস টেবিল উপসর্গ ব্যবহার করা আরও ভাল

global $wpdb;
$table_name = $wpdb->prefix . 'table_name'; 

1
@ ইরেনোরপাজ ধন্যবাদ, আমি আপনার মন্তব্যের জবাবে উত্তরে সামগ্রী যুক্ত করেছি :)
আর্সলান এজাজ

দ্রুত প্রতিক্রিয়া জন্য আপনাকে ধন্যবাদ, এমনকি একটি পুরানো থ্রেড এ! আমি আমার আগের মন্তব্যগুলি মুছে ফেলব, যেহেতু এটি এখন পুরানো) :)
এরেনর পাজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.