WooCommerce'de programlı olarak Benzersiz Kupon Kodları Nasıl Oluşturulur
Yayınlanan: 2020-07-06Önceki yazımızda, kupon kodunun WooCommerce sepetine otomatik olarak nasıl uygulanabileceğini tartıştık. Burada, farklı müşteriler tarafından verilen tüm siparişler için WooCommerce -> Kuponlar menüsü altında oluşturulan genel bir kupon kodu kullandık.
Ancak bazen bir mağaza sahibi olarak, belirli durumlar için web sitenizdeki her müşteri için benzersiz bir kupon kodu oluşturmak istersiniz. Benzersiz kupon kodları oluşturmak isteyebileceğiniz iki örneği ele alalım.
Örnek 1:
Bir çevrimiçi mağaza sahibi olarak, bir müşterinin satın alma döngüsüyle karşılaşabileceğiniz en kötü şey, alışveriş sepetini terk etmektir. Yaklaşık. Bir web sitesindeki sepetlerin %68 ila 70'i kullanıcılar tarafından terk edilir ve bunun birden fazla nedeni olabilir. En yaygın nedenlerden biri, ürünlerin daha yüksek fiyatları veya nakliye ücretleri gibi ek ücretlerin yüksek olması olabilir; bu, genellikle kasada gösterilir ve bundan önce değil.
Yani burada, alışveriş sepetini terk etmeyi en aza indirmek ve olabildiğince çok kullanıcıyı müşteriye dönüştürmek için, satın almaları için bazı indirim kuponlarıyla onları çekebilirsiniz. Bu şekilde terkedilmiş sepetlerinizi kurtarılmış sepetlere dönüştürebilirsiniz.
Bu gibi durumlarda, kodun birden fazla kullanımını önlemek için terk edilen her alışveriş sepeti için tek bir kullanım limiti olan benzersiz bir kupon kodu sağlamak en iyisidir.
Örnek 2:
Benzersiz kupon kodları oluşturmanın başka bir örneği, mağazanızdan bir kez satın alan müşteriler için olabilir, ancak onları daha fazla satın almaya çekmek için bir sonraki alışverişlerinde onlara indirim kuponları göndermeyi tercih edeceksiniz. Yani burada tüm müşteriler için genel bir kupon kodu oluşturacaksanız, kuponları tanıdıkları diğer kişilere yeni alışverişlerinde kullanılabilecekleri iletebilirler.
Yani burada geri dönen müşteriler için oluşturulan bir kupon kodu kötüye kullanılabilir. Bunu önlemek için, kullanım limiti 1 olarak ayarlanmış her müşteri için benzersiz bir kupon kodu oluşturmak daha iyidir.
WooCommerce -> Kuponlar menüsünden her müşteri için manuel olarak benzersiz kupon kodları oluşturmak mümkün değildir. Diğer seçenek, farklı kullanıcılar için aynı anda birden fazla kupon oluşturmak için bir kod parçacığı eklemek olacaktır ve bunu nasıl başaracağımızı yazımızda tartışacağız.
WooCommerce'de benzersiz kupon kodları oluşturmanın 2 yolu
Benzersiz bir kupon kodu oluşturmanın ilk adımı, her kupon için rastgele bir dizi oluşturmak olacaktır. Bu, aşağıdaki kod kullanılarak oluşturulacaktır.
$karakterler = "ABCDEFGHJKMNPQRSTUVWXYZ23456789"; $char_length = "8"; $random_string = substr( str_shuffle( $karakterler), 0, $karakter_uzunluk);
Burada substr() işlevi, dizenin başlangıç ve uzunluk parametreleri tarafından belirtilen bölümünü döndürür ve str_shuffle() işlevi, geçirilen dizeyi rastgele karıştırır.
Benzersiz dizeyi oluşturduktan sonraki adım, bir kod parçacığı kullanarak kupon kodunu oluşturmak olacaktır. WooCommerce'de programlı olarak kupon kodları oluşturabileceğiniz 2 yolu tartışacağız.
1. wp_insert_post() işlevini kullanma
Kupon kodunu programlı olarak eklemenin ilk yolu, bir WordPress gönderisi eklemenize veya güncellemenize izin veren wp_insert_post() işlevini kullanmaktır. Bizim durumumuzda, bu işlevi kullanarak shop_coupon yazı tipine sahip bir gönderi ekliyoruz. Oluşturulan kuponlara meta eklemek için update_post_meta() işlevi kullanılır. Alt temanın function.php dosyasına veya herhangi bir kod parçacığı eklentisi kullanarak aşağıdaki kodu eklemeniz gerekir.
$coupon_code = 'UNIQUECODE'; // Rastgele dize parçacığı kullanılarak oluşturulan kod. $tutar = '10'; // Tutar $discount_type = 'yüzde'; // Tür: sabit_araba, yüzde, sabit_ürün, yüzde_ürün $kupon = dizi( 'post_title' => $kupon_kodu, 'post_content' => '', 'post_status' => 'yayınla', 'post_author' => 1, 'post_type' => 'shop_coupon' ); $new_coupon_id = wp_insert_post( $kupon ); // meta ekle update_post_meta( $new_coupon_id, 'discount_type', $discount_type ); update_post_meta($new_coupon_id, 'coupon_amount', $tutar); update_post_meta($new_coupon_id, 'individual_use', 'hayır'); update_post_meta( $new_coupon_id, 'product_ids', '' ); update_post_meta( $new_coupon_id, 'exclude_product_ids', '' ); update_post_meta( $new_coupon_id, 'usage_limit', '' ); update_post_meta( $new_coupon_id, 'expiry_date', '' ); update_post_meta($new_coupon_id, 'apply_before_tax', 'evet'); update_post_meta( $new_coupon_id, 'free_shipping', 'hayır');
2. WooCommerce Rest API'sini Kullanma
Programlı olarak kupon kodu eklemenin başka bir yolu, eklentinin kendisi tarafından sağlanan WooCommerce Rest API'sini kullanmaktır. WooCommerce, Rest API için Kimlik Doğrulama, Veri Alma, Kuponlar, Siparişler vb. dahil olmak üzere eksiksiz bir kılavuza sahiptir, ancak bir referans olması için aşağıda kupon kodu oluşturmak için kullanabileceğiniz küçük bir pasaj bulunmaktadır.

require_once __DIR__ . '/vendor/autoload.php'; Automattic\WooCommerce\Client'ı kullanın; Automattic\WooCommerce\HttpClient\HttpClientException kullanın; $woocommerce = yeni Müşteri( 'https://example.com', 'tüketici anahtarı', 'tüketici mahremiyeti', [ 'wp_api' => doğru, 'sürüm' => 'wc/v3' ] ); $veri = [ 'kod' => '10off', 'discount_type' => 'yüzde', 'tutar' => '10', 'individual_use' => doğru, 'exclude_sale_items' => doğru, 'minimum_amount' => '100,00' ]; $woocommerce->post( 'kuponlar', $veri);
Bu, sipariş toplamı 100 dolardan fazla olan bir siparişte %10 indirimli kupon kodu oluşturmak için temel bir kod parçacığıdır. Kupon kodu '10off'tur ve sadece bir müşteri tarafından kullanılabilir. Bunlar sadece kupon kodu oluşturmak için gereken temel özelliklerdir, ancak bazı ek özellikler eklemek isterseniz, bunun listesi burada.
id – ( int ) Nesne için benzersiz tanımlayıcı .
code – (string)(Gerekli) Kupon kodu.
miktar – (string) İndirim miktarı. Bir yüzde ayarlansa bile her zaman sayısal olmalıdır.
date_created – (tarih-saat) Sitenin saat diliminde kuponun oluşturulduğu tarih.
date_created_gmt – (tarih-saat) GMT olarak kuponun oluşturulduğu tarih.
date_modified – (tarih-saat) Sitenin saat diliminde kuponun en son değiştirildiği tarih.
date_modified_gmt – (tarih-saat) GMT olarak kuponun en son değiştirildiği tarih.
indirim_türü – (string) Uygulanacak indirimin türünü belirler. Seçenekler: yüzde, sabit_araba ve sabit_ürün. Varsayılan fix_cart'tır .
açıklama – (string) Kupon açıklaması.
date_expires – (string) Sitenin saat diliminde kuponun sona erdiği tarih.
date_expires_gmt – (string) Kuponun GMT olarak sona erdiği tarih.
use_count – (int) Kuponun halihazırda kaç kez kullanıldığı.
bireysel_kullanım – (bool) Doğruysa, kupon yalnızca tek tek kullanılabilir. Uygulanan diğer kuponlar sepetten kaldırılacaktır. Varsayılan yanlıştır .
product_ids – (dizi) Kuponun kullanılabileceği ürün kimliklerinin listesi.
Exclusive_product_ids – (dizi) Kuponun kullanılamayacağı ürün kimliklerinin listesi.
use_limit – (int) Kupon toplamda kaç kez kullanılabilir.
use_limit_per_user – (int) Kupon müşteri başına kaç kez kullanılabilir.
limit_usage_to_x_items – (int) Kuponun uygulanabileceği sepetteki maksimum ürün sayısı.
free_shipping – (bool) Doğruysa ve ücretsiz gönderim yöntemi bir kupon gerektiriyorsa, bu kupon ücretsiz gönderimi etkinleştirir. Varsayılan yanlıştır .
product_categories – (dizi) Kuponun geçerli olduğu kategori kimliklerinin listesi.
Exclusive_product_categories – (dizi) Kuponun uygulanmadığı kategori kimliklerinin listesi.
Exclusive_sale_items – (bool) true ise bu kupon indirimli fiyatı olan ürünlere uygulanmaz. Varsayılan yanlıştır .
minimum_amount – (string) Kupon uygulanmadan önce sepette olması gereken minimum sipariş miktarı.
maximum_amount – (string) Kupon kullanılırken izin verilen maksimum sipariş miktarı.
email_restrictions – (dizi) Bu kuponu kullanabilen e-posta adreslerinin listesi.
use_by – (dizi) Kuponu kullanan kullanıcı kimliklerinin (veya misafir e-posta adreslerinin) listesi.
meta_data – (dizi) Meta veri.
Çözüm
Yukarıda bahsedilen kod parçacıkları, kupon kodunun nasıl oluşturulacağına dair sadece bir örnektir. Bunları web sitenizde kullanmak için gerekli olan herhangi bir kancaya veya filtreye bağlanması gerekir. Örneğin, sepeti terk ettiğinizi takip ederken sepetteki herhangi bir kancada kullanılabilir veya müşterilerinize e-posta güncellemeleri göndermek için her hafta çalıştırılacak Cron işinde kullanılabilir.
Benzersiz kupon kodlarından yararlanın ve web siteniz için geri dönen mutlu müşteriler yaratın.