2017-10-11 2 views
0

Je suis très novice en matière de codage et je souhaite créer une fonction permettant d'envoyer un rappel par e-mail un jour avant la date de livraison des commandes terminées dans WooCommerce 3.1.1.Envoyer une note de rappel un jour avant la date de livraison

J'utilise le plug-in WooCommerce Machines à sous Livraison et a obtenu les informations sur la date de livraison ici: http://docs.iconicwp.com/article/53-get-the-delivery-date-for-an-order

Je ne sais pas comment procéder pour faire ce travail de fonction.

add_action("init", "send_reminder_note"); 

function send_reminder_note($order_id) { 
$order = wc_get_order($order_id); 

foreach ($order_id as $id) { 

    //Get all order data 
    $order_data = $order->get_data(); // The Order data 
    $order_id = $order_data['id']; 
    $order_parent_id = $order_data['parent_id']; 
    $order_status = $order_data['status']; 
    $order_billing_email = $order_data['billing']['email']; 

    //Get one day before delivery date 
    $date = get_post_meta($order_id, 'jckwds_date', true); // delivery date 
    $date_temp = get_post_meta($order_id, 'jckwds_date', true); 
    $date = date("Ymd", strtotime("-1 days")); 

    //Send emils if orders is completed and one day before delivery date 
    if($order_status == 'completed') { 
     if($date_temp >= $date){ 
      $to = $order_billing_email; 
      $subject = 'Reminder your package will be sent tomorrow'; 
      $body = 'your order will be sent tommorow'; 
      $headers = array('Content-Type: text/html; charset=UTF-8'); 

      wp_mail($to, $subject, $body, $headers); 

     } 
    } 

} 
} 

Répondre

0

Je ne suis pas sûr d'avoir compris votre question. Compte tenu de votre champ jckwds_date dans votre table de commandes est la date de livraison,

Je vous suggère de définir un Cron (https://en.wikipedia.org/wiki/Cron) et l'exécuter une fois par jour. Cette cron exécutera un fichier PHP avec une fonction similaire à celle que vous avez écrit, mais avec ce flux:

  • Interrogez la base de données où jckwds_date Date == de demain
  • Pour chaque commande envoyer l'e-mail de confirmation

J'espère que cela aide.

+0

Bonjour, J'utilise les "Machines à sous WooCommerce" et j'ai reçu le fichier jckwds_date de: [http://docs.iconicwp.com/article/53-get-the-delivery-date-for-an-order] (http://docs.iconicwp.com/article/53-get-the-delivery-date-for-an-order) – DynaSona