Я хочу получить «mycred» баланс клиента через заказ, используя WP ALL Export для экспорта баланса клиента на основе заказов в электронную таблицу. Это на самом деле, вероятно, довольно просто. Я могу получить идентификатор заказа, но не идентификатор клиента
Вот что я делаю, чтобы проверить, могу ли я получить идентификатор клиента:
function get_customeruserid($value)
{
global $woocommerce, $post;
$order = new WC_Order($post->ID);
$order_id = $order->get_order_number();
$customer = new WC_Customer($post->ID);
$user_id = $customer->get_ID();
$value = $user_id;
return $value;
}
Это возвращает 0.
Тем не менее, я могу достаточно легко получить номер заказа, выполнив это:
function get_customerorderid($value)
{
global $woocommerce, $post;
$order = new WC_Order($post->ID);
$order_id = $order->get_order_number();
$value = $order_id;
return $value;
}
Это возвращает номер заказа клиента, который хорош, но только полдела. Теперь мне нужен идентификатор клиента, поэтому я вызываю функцию mycred balance, чтобы показать их баланс.
Есть идеи? Я новичок в php и, вероятно, очень плохо.
Вы можете использовать номер заказа, чтобы получить соответствующий идентификатор клиента, используя запрос к базе данных, мета-запрос Google WordPress
Чтобы получить идентификатор пользователя из идентификатора заказа, вы можете использовать много способов, вот 2 из них:
В WooCommerce от 2.5 до 3.0+ вы можете использовать get_post_meta()
функционировать так:
function get_customerorderid(){
global $post;
$order_id = $post->ID;
// Get the user ID
$user_id = get_post_meta($order_id, '_customer_user', true);
return $user_id;
}
В WooCommerce 3.0+ вы можете использовать методы класса WC_Order сюда:
function get_customerorderid(){
global $post;
$order_id = $post->ID;
// Get an instance of the WC_Order object
$order = wc_get_order($order_id);
// Get the user ID from WC_Order methods
$user_id = $order->get_user_id(); // or $order->get_customer_id();
return $user_id;
}
Для тех, кто хочет специально добавить баланс mycred клиента из ORDER в таблицу CSV в WP All Export, здесь приведен фрагмент кода, который я использовал.
Спасибо за вашу помощь в решении проблемы.
При редактировании экспорта ORDER в WP ALL EXPORT добавьте новый объект данных и нажмите на него и «Экспортируйте значение, возвращаемое функцией PHP«затем добавьте следующую функцию в редактор кода:
function all_export_mycred($balance)
{
global $woocommerce, $post;
$order = new WC_Order($post->ID);
$user_id = $order->get_user_id( );
$balance = mycred_get_users_balance( $user_id );
return $balance;
}
Затем убедитесь, что добавили «all_export_mycred» в поле возврата php.