web-dev-qa-db-ja.com

WooCommerceの注文IDから顧客IDを取得する

WP ALL Exportを使用して、注文に基づいて顧客の残高をスプレッドシートにエクスポートしている間、注文を通じて顧客の「mycred」残高を取得したい。注文IDは取得できますが、顧客IDは取得できません

お客様IDを取得できるかどうかをテストするために、次のことを行います。

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;
}

これは顧客の注文番号を返しますが、これは素晴らしいことですが、戦闘の半分に過ぎません。顧客IDが必要になったので、mycred balance関数を呼び出して残高を表示します。

何か案は?私はPHPの初心者であり、おそらく非常に悪いです。

6
Fluke Fox

注文IDからユーザーIDを取得するには、多くの方法を使用できます。次の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;
}
23
LoicTheAztec

注文から顧客mycred balanceをWPここですべてのエクスポートは私が使用したコードの一部です。解決にご協力いただきありがとうございます。

WP ALL EXPORTでORDERエクスポートを編集中に、新しいデータオブジェクトを追加してクリックし、「Exported value by a PHP function "次に、コードエディターで次の関数を追加します。

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 returnフィールドに追加してください。

7
Fluke Fox

注文番号を使用して、データベースクエリgoogle wordpress meta query

0
K. Tromp