WooCommerce'de sipariş durumu otomatik olarak nasıl değiştirilir?

Yayınlanan: 2021-07-31

Mağazanızdaki sipariş durumunu güncellemek ister misiniz? Doğru yere geldiniz. Bu kılavuzda, bazı PHP betiklerini kullanarak WooCommerce'de sipariş durumunu otomatik olarak nasıl değiştireceğinizi göstereceğiz. Gelişmiş kodlama becerileriniz yoksa endişelenmeyin, her bir betiği ayrıntılı olarak açıklayacağız.

WooCommerce, geliştiricilere birçok özellik sunar, bu nedenle kodlama becerileriniz varsa, her türlü özelleştirmeyi yapabilir ve e-Ticaret mağazanızı geliştirebilirsiniz. Aşağıdaki eğitimde, sipariş durumu hakkında bilmeniz gereken her şeyi öğreneceksiniz. Bu, çok sayıda siparişi yönetirken çok faydalı olabilecek bir WooCommerce özelliğidir. Mağaza yöneticilerinin belirli bir statüye sahip siparişleri kolayca arayabileceği ve belirli eylemleri gerçekleştirebileceği arka uç siparişler listesinde özellikle yararlı olacaktır.

Lafı fazla uzatmadan hemen konuya girelim.

WooCommerce'deki sipariş durumu nedir?

Sipariş durumu, yalnızca siparişin mevcut durumunu temsil eden bir siparişin sahip olduğu bir etikettir . Bir gönderiye eklenen ve o gönderinin mevcut durumu hakkında belirli bilgileri açıklayan bir sınıflandırmaya benzer. Örneğin, bir müşteri "Sipariş Ver" düğmesine bastığında mağazamıza sipariş verir. Varsayılan olarak, sipariş durumu "Ödeme Bekliyor" olarak ayarlanmıştır.

Mağaza, PayPal veya Stripe gibi bir ödeme ağ geçidi ile entegre edilmişse, önceki varsayılan durum (beklemede) doğrulanacak ve ödeme ağ geçidi doğrulama sonucuna bağlı olarak " Beklemede " veya " Başarısız " olarak değişecektir. Ardından, ödeme tamamlandıysa sipariş durumu otomatik olarak " İşleniyor " olarak değişecek, ödeme başarısız olursa durumu " Başarısız " olacaktır.

Gördüğünüz gibi, bu durumların her biri bize siparişle ilgili bilgileri verir. Bu otomasyon, siparişin ödemesinin yapılıp yapılmadığını, ürünümüzü müşteriye teslim etmemizi sağlar.

WooCommerce'de Sipariş Durumu

Bunlar, WooCommerce'de bulunan tüm sipariş durumları ve her birinin anlamıdır:

  • Bekleyen ödeme: Sipariş alındı ​​ve ödeme kaydedilmedi. ödemeyi bekliyoruz
  • Başarısız: Ödeme herhangi bir nedenle başarısız oldu. Bu, ödeme platformundan (yani PayPal) reddedildiği veya daha fazla kimlik doğrulama gerektirdiği (SCA) anlamına gelir.
  • İşleniyor: Ödeme mağaza tarafından alındı, ürünün stoğu güncellendi ve satın alma, teslimat için planlanan zamanda
  • Tamamlandı: Sipariş yerine getirildi ve tamamlandı. Her şeyin yolunda gittiği bir düzenin son hali bu
  • Beklemede : Müşteri herhangi bir ödeme yapmadı, bu nedenle sipariş için mağaza yöneticisinden onay alınması gerekiyor
  • İptal Edildi : Mağaza yöneticisi veya kullanıcı siparişi bir noktada iptal etti. Bu, başka bir işlem gerektirmez, ancak siparişi neden iptal ettiğini anlamak için müşteriyle iletişime geçmeniz önerilir.
  • Para İadesi: Siparişin parası iade edildi, başka bir işlem yapılmasına gerek yok

Artık sipariş durumunun ne olduğunu ve işlevini daha iyi anladığımıza göre, onu güncellemenin neden iyi bir fikir olabileceğini görelim.

Varsayılan sipariş durumu işlevi neden değiştirilmelidir?

Her e-ticaret mağazası farklıdır ve özel gereksinimleri vardır. Bazı çevrimiçi mağazalar, sipariş durumunu hiç kullanmayabilir veya hepsini kullanmayabilir. Örneğin, alışveriş yapanlar ürünleri iade edemezse mağaza Geri Ödeme durumunu kullanmayabilir.

Ayrıca, varsayılan sipariş durumu özelliğinin yeterli olmadığı ve mağazanın sipariş durumu yönetimi için özel bir duruma veya otomatik bir çözüme ihtiyaç duyduğu bazı durumlar olabilir. Bu durumlarda, sipariş durumu davranışını özelleştirmek, mağaza yönetimini iyileştirmek için harika bir çözümdür. Bu şekilde, e-ticaret mağazasının her durumda sipariş durumunu manuel olarak güncellemesi gerekmez.

Bu, mağaza sahiplerinin zamandan tasarruf etmelerine ve işlerini geliştirmek için daha önemli şeylere odaklanmalarına yardımcı olacaktır.

WooCommerce'de sipariş durumu nasıl değişir?

Bu noktada, WooCommerce PayPal, Payoneer, Stripe vb. gibi bir ödeme ağ geçidi ile entegre edildiğinde sipariş durumunun dinamik olarak değiştiğini anlamak önemlidir. Durumu beklenmeyen bir zamanda manuel olarak güncellerseniz, mağazanızda bulunan ödeme yöntemini bozabileceğinizi ve müşterilerin satın alma sürecini takip edemeyeceklerini unutmayın.

Ne yapacağımızı daha iyi anlamak için sipariş durum akışının nasıl çalıştığına bir göz atalım:

woocommerce-sipariş durumu

WooCommerce belgelerinden

Yukarıdaki grafikte de görebileceğiniz gibi sipariş durumunun ilk aşaması “ Beklemede ”dir. Bunun hemen ardından, ödeme ağ geçidi, kullanıcının ödemeyi tamamlayıp tamamlayamayacağını doğrular ve durumunu “ Beklemede ” ve ardından ödeme başarıyla tamamlandığında “ İşleniyor ” olarak değiştirir. Aksi takdirde “ Başarısız ” durumuna dönecektir.

Bundan sonra WooCommerce başka bir şey yapmayacaktır. Mağaza müdürü siparişi “ Tamamlandı ” veya “ İptal edildi ” olarak işaretlemelidir. Bu noktada, entegre bir ödeme ağ geçidi olsa bile sipariş durumunu otomatik olarak (programlı olarak) değiştirmek güvenlidir .

Ek olarak, durum " İşleniyor " veya " Geri Ödeme Yapıldı " olarak değiştiğinde, siparişe dahil olan ürünlerin stoğunun yeniden hesaplanacağını bilmek önemlidir. Aynısı, bu siparişle ilgili çevrimiçi mağazanın tüm istatistikleri için de geçerli olacaktır.

Artık sipariş durumunun nasıl değiştiğine dair net bir fikre sahip olduğumuza göre , WooCommerce'de sipariş durumunun nasıl güncelleneceğine bakalım .

WooCommerce'de sipariş durumu otomatik olarak nasıl değiştirilir?

WooCommerce'de sipariş durumunu programlı olarak değiştirmek için bazı örnek komut dosyalarına bir göz atalım.

NOT : Bazı çekirdek dosyaları düzenleyeceğiz, bu yüzden başlamadan önce sitenizin tam yedeğini aldığınızdan emin olun. Ek olarak, bir alt tema oluşturun veya henüz yoksa bu eklentilerden herhangi birini kullanın, böylece temanızı güncelledikten sonra bile özelleştirmelerinizi korursunuz.

Satın aldıktan sonra tüm sipariş durumunu değiştir

E-Ticaret mağazanız, sipariş durumunu kullanan herhangi bir ödeme ağ geçidi ile entegre değilse, tüm siparişleri, "İşleniyor" olarak bırakmak yerine, müşteri sipariş verdikten hemen sonra beklemeye alabilirsiniz. Bu komut dosyasına bir göz atalım:

 function QuadLayers_change_order_status( $order_id ) {  
                if ( ! $order_id ) {dönüş;}            
                $sipariş = wc_get_order( $sipariş_kimliği);
                if( 'processing'== $order->get_status() ) {
                    $order->update_status( 'beklemede wc');
                }
}
add_action('woocommerce_thankyou','QuadLayers_change_order_status');

Bir sipariş verildikten hemen sonra işlevimizi tetiklemek için woocommerce_thankyou kancasını kullanırız ve update_status() kullanarak durumu değiştiririz.

Gördüğünüz gibi, durum bilgisinin bir öneki (WC) vardır. İşlev önek olmadan da çalışsa da, kullanılması önerilen bir uygulamadır.

woocommerce-sipariş durumu beklemede

Kodu ayarlayarak “Beklemede” yerine başka herhangi bir durumu ve hatta özel durumları kullanabileceğinizi belirtmekte fayda var.

Sipariş kimliğinden sipariş durumunu değiştir

Aşağıdaki komut dosyası, tek bir siparişin durumunu değiştirecektir. Örneğin, sipariş 115'in sipariş durumunu değiştirmek için aşağıdaki parçacığı kullanıyoruz:

 add_action('init',function(){
	$sipariş = yeni WC_Order(115);
        $order->update_status('wc-processing'); 
});

Bu kısa bir betik, bu yüzden 'init' WordPress kancasında anonim bir işlev kullandık.

Bunun, komut dosyası etkinken durumda daha fazla değişiklik yapmanıza izin vermeyeceğini unutmayın.

Geri dönen müşteriler için WooCommerce sipariş durumunu güncelleyin

Bu, WooCommerce'de sipariş durumunu otomatik olarak değiştirmek için başka bir ilginç örnek. Aşağıdaki komut dosyası, yalnızca kullanıcının daha önce "Tamamlandı" veya "İşleniyor" durumuna eklenmiş bir siparişi varsa, sipariş durumunu "Tamamlandı" olarak değiştirir.

 function QuadLayers_order_status_returning( $order_id ) {
        // Bu müşteri siparişlerini al
         $user_id = wp_get_current_user();
        $müşteri_siparişleri = [];
        foreach ( wc_get_is_paid_statuses() as $paid_status ) {
            $customer_orders += wc_get_orders( [
                'type' => 'shop_order',
                'sınır' => - 1,
                'customer_id' => $user_id->ID,
                'status' => $paid_status,
            ]);
        }
            # önceki sipariş var
            if(count($customer_orders)>0){ 
                     if ( ! $order_id ) {dönüş;}            
                     $sipariş = wc_get_order( $sipariş_kimliği);
                     if( 'processing'== $order->get_status() ) {
                         $order->update_status('wc-tamamlandı');
                     }
            }
}
add_action('woocommerce_thankyou', 'QuadLayers_order_status_returning');

Bu, bir güvenlik katmanı eklemek ve geri dönen müşterilerin alışveriş deneyimini iyileştirmek için iyi bir fikir olabilir.

Bir URL parametresindeki sipariş durumunu değiştirin

Bu örnek komut dosyası, tarayıcıda URL parametresi mevcut olduğunda belirli bir sipariş durumuna dönüşecektir. init WordPress kancasını kullandığımızdan, komut dosyası mağazanın herhangi bir sayfasında çalışacaktır.

Ek olarak, şu anda oturum açmış olan kullanıcının en son siparişi için sipariş durumunu düzenleyecektir. Bu örnekte, herhangi bir URL şuna benzer bir "revert" parametresine sahip olduğunda sipariş durumu "İptal edildi" olarak değişecektir: https://website.com/shop?st=revert

 add_action('init',function(){
    if(isset($_GET['st'])&&!empty($_GET['st']) ):
        $get_url = $_GET['st'];
 
        if($get_url=='geri döndür'):
            $user_id = wp_get_current_user();
            $sipariş = wc_get_customer_last_order($user_id->ID);  
            $order->update_status('wc-iptal edildi');
        endif;
    endif;
});

Özel bir sipariş durumu oluşturun

Bu örnekte bir siparişin durumunu değiştirmek yerine, özgürce kullanabileceğimiz yeni bir özel sipariş durumu oluşturacağız. Mevcut durumlar yeterli değilse veya daha fazla netlik için yeni bir tane oluşturmayı tercih ediyorsanız bu iyi bir fikirdir. Özel bir sipariş durumu oluşturduğunuzda, bunu yukarıdaki komut dosyalarından herhangi biriyle kullanabilirsiniz.

Aşağıdaki komut dosyası kaydolacak ve sipariş durumu listesine yeni bir durum ekleyecektir. Bu durumda, yeni özel sipariş durumunu “ İlerliyor ” olarak adlandıracağız, ancak kodu özelleştirerek istediğiniz herhangi bir adı kullanabilirsiniz.

 // Yeni durumu kaydet
function register_in_progress_order_status() {
    register_post_status('wc-devam ediyor', dizi(
        'etiket' => 'Devam ediyor',
        'genel' => doğru,
        'show_in_admin_status_list' => doğru,
        'show_in_admin_all_list' => doğru,
        'exclude_from_search' => yanlış,
        'label_count' => _n_noop( 'Devam ediyor (%s) ', 'Devam ediyor (%s) ' )
    ) );
}
// Sipariş durum listesine özel durum ekle
function add_in_progress_to_order_statuses( $order_statuses ) {
    $new_order_statuses = dizi();
    foreach ( $order_statuses as $key => $status ) {
        $new_order_statuses[ $anahtar ] = $durum;
        if ( 'wc-processing' === $key ) {
            $new_order_statuses['wc-in-progress'] = 'Devam ediyor';
        }
    }
    $new_order_statuses döndür;
}
add_action('init', 'register_in_progress_order_status');
add_filter('wc_order_statuses', 'add_in_progress_to_order_statuses');



woocommerce-özel-sipariş durumu

WooCommerce sipariş durumunu değiştirmenin diğer yolları

WooCommerce'de varsayılan sipariş durumunu güncellemenin alternatif yollarını arıyorsanız, bazı eklentilere göz atabilirsiniz. Ne yazık ki, bunun için pek çok ücretsiz araç yok ama bunlar en iyilerinden bazıları:

  • YITH Özel Sipariş Durumu : Sipariş durumlarını yönetmek ve özel siparişler oluşturmak için mükemmel bir araç. Piyasadaki en iyi araçlardan biri ama ucuz değil. Size yılda 79.99€ geri getirecek.
  • WooCommerce Sipariş Durumu Yöneticisi : Sipariş durumunu eklemek, kaldırmak ve düzenlemek için başka bir harika eklenti. Ayrıca siparişlerin durumuna göre e-postaları tetikleyebilirsiniz. Yıllık 49 USD maliyeti.
  • WooCommerce için Özel Sipariş Durumu: WooCommerce'de sipariş durumunu yönetmek için en iyi araçlardan biri. Yılda 39 USD'den başlayan premium bir eklentidir.
  • Ni WooCommerce Özel Sipariş Durumu : Sipariş durumunuzu kolaylıkla yönetmenize izin veren birkaç güvenilir ücretsiz eklentiden biri.

WooCommerce mağazanızda sipariş durumunu nasıl görebilirsiniz?

Mağazanızdaki sipariş durumunu görmenin en kolay yolu, WooCommerce kontrol panelinizi açıp Siparişler'e gitmektir. Ardından herhangi bir siparişi açın ve Genel bölümünün altında Durum açılır menüsüne basın. Orada mağazanızdaki tüm siparişleri göreceksiniz.

Çözüm

Özetle, sipariş durumu, bir siparişin mevcut durumunu temsil eden bir etikettir. WooCommerce belirli varsayılan durumları içerse de, bunları özelleştirmek, kaldırmak veya yenilerini eklemek isteyenler için iyi bir fikir olabilir. Ayrıca, sipariş durum yönetimi için otomatik bir çözüme ihtiyaç duyan işletmeler için ilginç bir çözüm olabilir.

Bu kılavuzda, WooCommerce'de sipariş durumunu otomatik olarak değiştirmek için tüm varsayılan sipariş durumlarını ve farklı örnekleri gördük. Bunlar sadece bazı fikirler ama yapabileceğiniz daha çok şey var. Bu komut dosyalarını temel almanızı ve mağazanız için özelleştirmek üzere oynamanızı öneririz.

Mağazanızı nasıl özelleştireceğiniz hakkında daha fazla bilgi için şu eğiticilere göz atın:

  • WooCommerce kuponları otomatik olarak nasıl uygulanır?
  • WooCommerce Teşekkürler sayfasını programlı olarak düzenleyin
  • WooCommerce kayıt formu nasıl özelleştirilir
  • WooCommerce siparişlerini test etmek için 3 Yöntem
  • WooCommerce AJAX Ürün Filtreleri Nasıl Eklenir

Mağazanızdaki sipariş durumunu güncellediniz mi? Bu kılavuzu izleyerek herhangi bir sorun yaşadınız mı? Aşağıdaki yorumlarda bize bildirin!