WooCommerce, sipariş yönetimini kolaylaştıran standart sipariş durumları ile birlikte gelir, ancak bazı iş modelleri için bu durumlar yetersiz kalabilir. Örneğin, özel üretim siparişleri veya belirli kontrol süreçleri için yeni sipariş durumları eklemek isteyebilirsiniz. WooCommerce’in esnek yapısı sayesinde, özel sipariş durumları oluşturmak ve bu durumlar için e-posta bildirimlerini tetiklemek mümkündür.
Bu yazıda, WooCommerce özel sipariş durumları eklemenin iki farklı yolunu anlatacağım: birincisi functions.php
dosyasına eklenecek bir kod ile, ikincisi ise bir WordPress eklentisi yazarak. Ayrıca, sipariş durumu değiştiğinde e-posta gönderimini nasıl tetikleyeceğinizi de göstereceğim.
1. Tema functions.php
Dosyasına Özel Sipariş Durumu Ekleme
WooCommerce özel sipariş durumları eklemek için aşağıdaki kodu temanızın functions.php
dosyasına ekleyebilirsiniz:
// Özel sipariş durumlarını tanımlar
function custom_register_post_statuses() {
register_post_status( 'wc-ozel-uretim', array(
'label' => 'Özel Üretim',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Özel Üretim (%s)', 'Özel Üretim (%s)' )
) );
}
add_action( 'init', 'custom_register_post_statuses' );
// Özel sipariş durumlarını sipariş detaylarına ekler
function custom_add_order_statuses( $order_statuses ) {
$order_statuses['wc-ozel-uretim'] = _x( 'Özel Üretim', 'Order status', 'text_domain' );
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'custom_add_order_statuses' );
Bu kod, WooCommerce’de Özel Üretim adında yeni bir sipariş durumu oluşturur ve yönetici panelinde siparişler listesine ekler.
2. Özel Sipariş Durumlarını Yönetmek İçin Çatı Bir Eklenti
Bu işlemi bir WordPress eklentisi ile yapmak, daha esnek ve güncellemelere karşı daha dayanıklı bir yöntemdir. Aşağıdaki gibi bir eklenti dosyası oluşturarak, bu fonksiyonu kullanabilirsiniz.
<?php
/*
Plugin Name: WooCommerce Özel Sipariş Durumları
Description: WooCommerce için özel sipariş durumu ekleyen bir eklenti.
Version: 1.0
Author: Eray Usta
*/
// Özel sipariş durumlarını kaydeder
function custom_plugin_register_post_statuses() {
register_post_status( 'wc-ozel-uretim', array(
'label' => 'Özel Üretim',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Özel Üretim (%s)', 'Özel Üretim (%s)' )
) );
}
add_action( 'init', 'custom_plugin_register_post_statuses' );
// Özel sipariş durumlarını sipariş listesine ekler
function custom_plugin_add_order_statuses( $order_statuses ) {
$order_statuses['wc-ozel-uretim'] = _x( 'Özel Üretim', 'Order status', 'text_domain' );
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'custom_plugin_add_order_statuses' );
// Özel sipariş durumu değiştiğinde e-posta gönderimini tetikler
function custom_plugin_trigger_email_on_status_change( $order_id, $old_status, $new_status ) {
if ( $new_status == 'wc-ozel-uretim' ) {
$order = wc_get_order( $order_id );
// E-posta detaylarını ayarlayın
$mailer = WC()->mailer();
$mails = $mailer->get_emails();
// WC_Email_New_Order: varsayılan yeni sipariş e-posta şablonunu kullanmak için
if ( ! empty( $mails ) ) {
foreach ( $mails as $mail ) {
if ( $mail->id == 'new_order' ) {
$mail->trigger( $order_id );
}
}
}
}
}
add_action( 'woocommerce_order_status_changed', 'custom_plugin_trigger_email_on_status_change', 10, 3 );
Bu eklenti:
wc-ozel-uretim
adında bir sipariş durumu ekler.- Sipariş durumu Özel Üretim olarak değiştiğinde, varsayılan yeni sipariş e-posta bildirimini tetikler.
Özet
WooCommerce’de özel sipariş durumları eklemek ve e-posta bildirimlerini yönetmek oldukça basittir. İster temanızın functions.php
dosyasına, ister bir eklenti olarak bu kodları ekleyerek, iş akışınıza uygun yeni sipariş durumları tanımlayabilirsiniz. E-posta bildirimleri de sipariş durumuna bağlı olarak tetiklenebilir, böylece müşteriler ve işletme sahipleri sipariş süreci hakkında anında bilgilendirilebilir.
Bu basit kodları ihtiyaçlarınıza göre özelleştirerek, WooCommerce’in sunduğu esnekliği tam anlamıyla kullanabilirsiniz!
İlk Yorumu Siz Yapın