2015-02-04 5 views
2

주문이 완료되면 전송되는 내 맞춤 이메일 템플릿입니다. 나는 데이터베이스에 연결하는이 PHP 코드를 삽입 할Woocommerce 맞춤 이메일 체크 아웃

<?php 
/** 
* Customer completed order email 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates/Emails 
* @version  1.6.4 
*/ 

if (! defined('ABSPATH')) exit; // Exit if accessed directly ?> 

<?php do_action('woocommerce_email_header', $email_heading); ?> 

<p><?php printf(__("Hi there. Your recent order on %s has been completed. Your order details are shown below for your reference:", 'woocommerce'), get_option('blogname')); ?></p> 

<?php do_action('woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text); ?> 

<h2><?php echo __('Order:', 'woocommerce') . ' ' . $order->get_order_number(); ?></h2> 

<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee"> 
    <thead> 
     <tr> 
      <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e('Product', 'woocommerce'); ?></th> 
      <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e('Quantity', 'woocommerce'); ?></th> 
      <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e('Price', 'woocommerce'); ?></th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php echo $order->email_order_items_table(true, false, true); ?> 
    </tbody> 
    <tfoot> 
     <?php 
      if ($totals = $order->get_order_item_totals()) { 
       $i = 0; 
       foreach ($totals as $total) { 
        $i++; 
        ?><tr> 
         <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ($i == 1) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th> 
         <td style="text-align:left; border: 1px solid #eee; <?php if ($i == 1) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td> 
        </tr><?php 
       } 
      } 
     ?> 
    </tfoot> 
</table> 

<?php do_action('woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text); ?> 

<?php do_action('woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text); ?> 

<h2><?php _e('Customer details', 'woocommerce'); ?></h2> 

<?php if ($order->billing_email) : ?> 
    <p><strong><?php _e('Email:', 'woocommerce'); ?></strong> <?php echo $order->billing_email; ?></p> 
<?php endif; ?> 
<?php if ($order->billing_phone) : ?> 
    <p><strong><?php _e('Tel:', 'woocommerce'); ?></strong> <?php echo $order->billing_phone; ?></p> 
<?php endif; ?> 

<?php wc_get_template('emails/email-addresses.php', array('order' => $order)); ?> 

<?php do_action('woocommerce_email_footer'); ?> 

는 문서 ID 및 방법 문서 ID's의 많은 구입을 필요로 한 다음이 데이터를 새 전자 메일을 전송하는 선택 쿼리를 수행합니다. 여러 번 시도했지만 결국에는 디버깅 기회없이 해결할 수없는 일부 PHP 오류로 인해 메일이 항상 작동을 멈췄습니다.

<?php 
$db = mysqli_connect("sqwffwq", "qwfqwf", "qwfqwf", "qwfwqf"); 
// here I have no clue how to receive the article ID´s and there amounts... 
// I wasn't able to find the woocommerce function 

$result = mysqli_query('SELECT * FROM etc. etc. '); 
mail(results) //Should be no problem after I got the information 
?> 
+0

이미 db 연결, $ wpdb가 있습니다. http://codex.wordpress.org/Class_Reference/wpdb. 또한 wp_mail로 메일을 대체하십시오. 앞으로 echo/var_dump 값을 디버깅 할 필요가 있는지 확인하고 끝내고 싶습니다. – David

+0

@David get_order_number(), 4); $ result = mysqli_query ('SELECT * FROM'wp_woocommerce_order_items' WHERE order_id = "'. $ rere2. '"'); $ myrows = $ wpdb-> get_results ('SELECT * FROM'wp_woocommerce_order_items' WHERE order_id = "'. $ rere2. '"'); foreach ($ myrow as $ myrow) { \t mail ("[email protected]", $ rere2, $ myrow-> order_item_id); } ?> 아직도 오류가 발생하고 있으십니까? – Etixpp

답변

1

실행이 뭐죠은 각 결과와 진행 참조 :

는 예를 들어 나는 시도했다. 위에서 언급하지 못한 것은이 코드를 추가하는 위치입니다. $order을 사용할 수 있습니까?

global $wpdb; 
    $rere2 = substr($order->get_order_number(), 4); 
    echo 'rere2='.$rere2.'<br>'; 
    $myrows = $wpdb->get_results('SELECT * FROM wp_woocommerce_order_items WHERE order_id = "'.$rere2.'"'); 
    var_dump($myrows); 
    foreach ($myrows as $myrow) { 
     //mail("[email protected]",$rere2,$myrow->order_item_id); 
     $x=wp_mail("[email protected]", $rere2 ,$myrow->order_item_id); 
     echo $x.'<br>'; 

     $wpdb->update('wp_woocommerce_order_items', 
       array('id'=>$variable), 
       array('order_item_id'=>$myrow->order_item_id), 
     ); // change table name, column names and values to suit.. 
    } 

    exit; 
+0

덕분에 지금은 단 한가지 더 작은 것 : 업데이트를해야하고 wpdb 업데이트 쿼리가 다소 혼란 스럽습니다. SQL 쿼리에서 그런 식으로 작업하지 않았을 것입니다. – Etixpp

+0

그냥 사용 된 열을 1로 설정하려면 id = variable – Etixpp

+0

ok로 요령을 업데이트하고 upvote + accept를 잊지 마십시오. – David

관련 문제