আমি একটি ফাংশন তৈরি করছি যা WooCommerce এর মধ্যে অর্ডার সম্পন্ন হওয়ার পরে কল করা দরকার। এর জন্য আমি * 'woocommerce_order_status_completed' * হুক ব্যবহার করছি। অর্ডারের কোনও নির্দিষ্ট পণ্য বিভাগের সাথে সম্পর্কিত পণ্য রয়েছে কিনা তা আমি খতিয়ে দেখতে চাই। যদি এটি হয় তবে ব্যবহারকারীকে ওয়ার্ডপ্রেসের মধ্যে একটি গোষ্ঠীতে যুক্ত করা হবে। গোষ্ঠী যুক্তি পরিচালনা করতে, আমি অন্য প্লাগইনের এপিআই ব্যবহার করছি। এই পদ্ধতিতে * গ্রুপ_আইডি * এবং * ব্যবহারকারী_আইডি * প্রয়োজন। আমি কেবল মিস করছি তা হচ্ছে * ব্যবহারকারী_আইডি *।
আমার 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()
যা ব্যবহারকারীর আইডি বা অতিথিদের জন্য শূন্য ফিরিয়ে দেয় ... আপনি যদি আর সেগুলি ব্যবহার করছেন তবে কোনও কলব্যাক সম্পর্কে আপনার আর চিন্তা করার দরকার নেই।