Sto cercando di ottenere alcuni dati da un ordine in un modello di email woocommerce, ma get_post_meta restituisce semplicemente false. Questo codice funziona sulla pagina grazie. Ho passato troppo tempo su questo. Qualsiasi aiuto sarebbe apprezzato. Grazie!get_post_meta in woocommerce notifiche email
global $post;
echo "test!!!<br />";
$x = get_post_meta($order->id, 'attendee_data', true);
$y = get_post_meta($order->id, 'attendee_test', true);
echo $order->id . '<br />';
echo $x;
echo $y;
Ho allegato una foto della SQL così come una e-mail.
SQL: http://i.stack.imgur.com/zUFBa.png
Email: http://i.stack.imgur.com/Uqtih.png
Il modello di email intero:
<?php do_action('woocommerce_email_header', $email_heading); ?>
<p><?php _e("Your order has been received and is now being processed. Your order details are shown below for your reference:", 'woocommerce'); ?></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($order->is_download_permitted(), true, ($order->status=='processing') ? true : false); ?>
</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
global $post;
echo "test!!!<br />";
$x = get_post_meta($order->id, 'attendee_data', true);
$y = get_post_meta($order->id, 'attendee_test', true);
echo $order->id . '<br />';
echo $x;
echo $y;
foreach ($x as $k => $p) {
echo $k ." ... ". $p;
} ?>
<?php // attendee_order_details($order->get_order_number()) ?>
<?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'); ?>
cosa c'è nella riga 56 di 'customer-processing-order.php'? – Dez
Probabilmente sarebbe meglio agganciare all'azione 'woocommerce_email_after_order_table' invece di modificare il modello. – doublesharp
Si potrebbe provare a rimuovere 'global $ post' dal momento che si sta usando' $ order' ... – doublesharp