WooCommerce on WordPress-julkaisujärjestelmään liitettävä suosittu ja hyvin räätälöivissä oleva verkkokauppalaajennos, ja suosituin verkkokauppa-alusta Suomessa.
WooCommerce lähettää uusista tilauksista sähköposti-ilmoituksen, jonka asetukset löytyvät WordPress-hallinnasta kohdasta WooCommerce > Asetukset > S-posti. Nämä ilmoitukset koostetaan pohjien eli mallinteiden perusteella.
Kullekin sähköposti-ilmoitukselle käytettävän mallinteen voi tarvittaessa ohittaa luomalla uuden tiedoston käytetävän teeman hakemistoon. Esimerkiksi uuden tilauksen mallinne luodaan tiedostoon /woocommerce/emails/admin-new-order.php
.
Asiakkaallani oli seuraava ongelma: Hänen WooCommerce-verkkokaupassaan on useita samannimisiä tuotteita eri kategorioissa. Uuden tilauksen tullessa, hän saa siitä ilmoituksen sähköpostilla, mutta koska sähköposti-ilmoitus ei sisällä yksilöivää tunnistetta, hänen oli mahdotonta tietää, minkä samannimisistä tuotteista asiakas oli tilannut.
Tässä kaksi mahdollista ratkaisua ongelmaan...
Lisää oheinen koodi käyttämäsi ulkoasuteeman functions.php-tiedostoon.
function modfuel_woocommerce_before_order_add_cat($name, $item) {
$product_id = $item['product_id'];
$_product = wc_get_product( $product_id );
$htmlStr = "";
$cats = "";
$terms = get_the_terms( $product_id, 'product_cat' );
$count = 0;
foreach ( $terms as $term) {
$count++;
if($count > 1) {
$cats .= $term->name;
}
else {
$cats .= $term->name . ',';
}
}
$cats = rtrim($cats,',');
$htmlStr .= $_product->get_title();
$htmlStr .= "<p>Tuoteryhmä: " . $cats . "</p>";
return $htmlStr;
}
add_filter('woocommerce_order_item_name','modfuel_woocommerce_before_order_add_cat', 10, 2);
Via: themelocation.com
Tässä vielä toinen lähestymistapa ongelmaan. Myös tämä koodi lisätään teeman functions.php-tiedoston loppuun.
function add_category_name_to_admin_email( $order, $sent_to_admin, $plain_text, $email ) {
if ( $sent_to_admin ) {
$order_items = $order->get_items();
foreach ( $order_items as $item_id => $item ) {
$product_id = $item->get_product_id();
$product = wc_get_product( $product_id );
$categories = $product->get_category_ids();
if ( $categories ) {
$category_names = array();
foreach ( $categories as $category_id ) {
$category_names[] = get_cat_name( $category_id );
}
echo '<small>' . __('Tuoteryhmä: ') . implode( ', ', $category_names ) . '</small>';
}
}
}
}
add_action( 'woocommerce_email_order_details', 'add_category_name_to_admin_email', 20, 4 );
Ja kuten aina, kun teet suoria muokkauksia WordPress-tiedostoihin, ota varmuuskopio tiedostoista ensin.