Ich denke, Sie brauchen solche Art von Code.
add_action('woocommerce_thankyou', 'my_custom_new_order_email');
function my_custom_new_order_email($order_id) {
$order = new WC_Order($order_id);
$billing_address = $order->get_formatted_billing_address(); // for printing or displaying on web page
$shipping_address = $order->get_formatted_shipping_address();
$email = $order->billing_email;
$name = $order->billing_first_name.' '.$order->billing_last_name;
$billing_phone = $order->billing_phone;
$date = date('M d, Y');
$data = '';
$data .= "<table border='0' cellpadding='0' cellspacing='0' width='600'><tbody><tr>
<td valign='top' style='background-color:#fdfdfd'>
<table border='0' cellpadding='20' cellspacing='0' width='100%'>
<tbody>
<tr>
<td valign='top' style='padding:48px'>
<div style='color:#737373;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:14px;line-height:150%;text-align:left'>
<span>
<p style='margin:0 0 16px'>
You have received an order from $name. The order is as follows:
</p>
</span>
<h2 style='color:#557da1;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:18px;font-weight:bold;line-height:130%;margin:16px 0 8px;text-align:left'>
Order # $order_id ($date)
</h2>
<div>
<div>";
if(sizeof($order->get_items()) > 0) {
$data .= "<table cellspacing='0' cellpadding='6' style='width:100%;border:1px solid #eee' border='1'>
<thead>
<tr>
<th scope='col' style='text-align:left;border:1px solid #eee;padding:12px'>
Product
</th>
<th scope='col' style='text-align:left;border:1px solid #eee;padding:12px'>
Quantity
</th>
<th scope='col' style='text-align:left;border:1px solid #eee;padding:12px'>
Price
</th>
</tr>
</thead>
<tbody>";
$data .= $order->email_order_items_table(false, true);
$data .= "</tbody><tfoot>";
if ($totals = $order->get_order_item_totals()) {
$i = 0;
foreach ($totals as $total) {
$i++;
$label = $total['label'];
$value = $total['value'];
$data .= "<tr>
<th scope='row' colspan='2' style='text-align:left; border: 1px solid #eee;'>$label</th>
<td style='text-align:left; border: 1px solid #eee;'>$value</td>
</tr>";
}
}
$data .= "</tfoot></table>";
}
$data .=
"<span>
<h2 style='color:#557da1;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:18px;font-weight:bold;line-height:130%;margin:16px 0 8px;text-align:left'>
Customer details
</h2>
<p style='margin:0 0 16px'>
<strong>Email:</strong>
<a href='mailto:' target='_blank'>
$email
</a>
</p>
<p style='margin:0 0 16px'>
<strong>Tel:</strong>
$billing_phone
</p>
<table cellspacing='0' cellpadding='0' style='width:100%;vertical-align:top' border='0'>
<tbody>
<tr>
<td valign='top' width='50%' style='padding:12px'>
<h3 style='color:#557da1;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:16px;font-weight:bold;line-height:130%;margin:16px 0 8px;text-align:left'>Billing address</h3>
<p style='margin:0 0 16px'> $billing_address </p>
</td>
<td valign='top' width='50%' style='padding:12px'>
<h3 style='color:#557da1;display:block;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:16px;font-weight:bold;line-height:130%;margin:16px 0 8px;text-align:left'>Shipping address</h3>
<p style='margin:0 0 16px'> $shipping_address </p>
</td>
</tr>
</tbody>
</table>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>";
$mailer = WC()->mailer();
$subject = 'New Customer Order';
$mailer->send('[email protected],[email protected]', $subject, $mailer->wrap_message($subject, $data), '', '');
}
Hoffentlich wird es für Sie arbeiten.
Dank
etwas anderer Ansatz, aber man könnte versuchen, eine [benutzerdefinierte E-Mail] Registrierung (https://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/) – helgatheviking
Was meinst du mit "komplettes Bestellobjekt"? Wie "var_dump version" von $ order? –
Wann möchten Sie eine Mail auslösen? wie wenn ein Benutzer eine Bestellung aufgegeben hat oder über einen benutzerdefinierten Link/eine Aktion oder einen benutzerdefinierten Bestellstatus? –