मैं एक फ़ंक्शन बना रहा हूं जिसे WooCommerce के भीतर एक ऑर्डर पूरा होने के बाद बुलाया जाना चाहिए। इसके लिए मैं * 'woocommerce_order_status_completed' * हुक का उपयोग कर रहा हूं। मैं जांच करना चाहता हूं कि क्या ऑर्डर में किसी विशिष्ट उत्पाद श्रेणी से संबंधित उत्पाद है। यदि यह मामला है, तो उपयोगकर्ता को Wordpress के भीतर एक समूह में जोड़ा जाएगा। समूह तर्क को संभालने के लिए, मैं दूसरे प्लगइन के एपीआई का उपयोग कर रहा हूं। इस विधि को * group_id * और * user_id * की आवश्यकता है। केवल एक चीज जो मुझे याद आ रही है वह है * user_id *।
मैं अपने WooCommerce ऑर्डर से उपयोगकर्ता (विस्तार से: आईडी) कैसे प्राप्त कर सकता हूं?
कोड:
function isa_set_isa_member_group_after_order_completed($order_id) {
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach($items as $item) {
$product = $order->get_product_from_item($item);
$has_membership_product = has_term('Lidmaatschap','product_cat',$product->post);
if($has_membership_product) {
break;
}
}
$group = Groups_Group::read_by_name('ISA Leden');
if(!group) {
return; // TODO: Add error message + email?
}
$user_id = 0 // TODO: Get user id from order.
$user_group = array(
"user_id" => $user_id,
"group_id" => $group->group_id
);
$result = Groups_User_Group::create($user_group);
if(!result) {
return; // TODO: Add error message + email?
}
}
तकनीकी जानकारी:
वर्डप्रेस संस्करण: 3.8
WooCommerce संस्करण: 2.1
WC_Order
वर्ग आता हैget_user()
जो उपयोगकर्ता ऑब्जेक्ट याfalse
मेहमानों के लिएget_user_id()
देता है और जो मेहमानों के लिए उपयोगकर्ता आईडी या शून्य देता है ... यदि आप उन का उपयोग कर रहे हैं तो आपको कॉलबैक के बारे में चिंता करने की आवश्यकता नहीं है।