web-dev-qa-db-fra.com

Obtenir l'ID client d'un ID de commande dans WooCommerce

Je souhaite obtenir le solde "mycred" d'un client dans la commande tout en utilisant WP ALL Export pour exporter le solde du client basé sur les commandes dans un tableur. C'est en fait probablement assez simple. Je peux obtenir l'ID de commande, mais pas l'ID de client

Voici ce que je fais pour vérifier si je peux obtenir l'ID client:

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

Cela retourne un 0.

Cependant, je peux facilement obtenir le numéro de commande en procédant ainsi:

function get_customerorderid($value)
{
  global $woocommerce, $post;

  $order = new WC_Order($post->ID);
  $order_id = $order->get_order_number();

  $value = $order_id;
  return $value;
}

Cela renvoie le numéro de commande du client, ce qui est excellent, mais ne représente que la moitié de la bataille. Je souhaite à présent l'identifiant client. J'appelle donc la fonction de solde mycred pour afficher leur solde.

Des idées? Je suis un débutant au php et probablement très mauvais.

4
Fluke Fox

Vous pouvez utiliser le numéro de commande pour obtenir l'identifiant client correspondant à l'aide d'une requête de base de données, méta-requête google wordpress

0
K. Tromp

Pour obtenir l'ID utilisateur à partir de l'ID de commande, vous pouvez utiliser plusieurs méthodes. Voici 2 d'entre elles:

Dans WooCommerce 2.5 à 3.0+, vous pouvez utiliser la fonction get_post_meta() de cette façon:

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

Dans WooCommerce 3.0+, vous pouvez utiliser les méthodes de classe WC_Order de cette façon:

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

Pour ceux qui souhaitent ajouter spécifiquement le solde client crédité d’un ORDRE à la feuille CSV dans WP Toutes les exportations, c’est le code que j’ai utilisé ..__ Merci d’avoir aidé à le résoudre.

Lors de l'édition d'une exportation ORDER dans WP ALL EXPORT, ajoutez un nouvel objet de données, cliquez dessus et " Exportez la valeur renvoyée par une fonction PHP ", puis ajoutez la fonction suivante dans le code. éditeur:

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;

    }

Assurez-vous ensuite d'ajouter "all_export_mycred" au champ de retour php.

5
Fluke Fox