Kolay dijital indirme kodlarıyla optin teşvikleri yapın
Kolay dijital indirmeler ve WordPress SEO dahil birçok WordPress eklentisi, anonim kullanıma izin vermek için bir indirim kodu sunar. Bu, veriler değerli olduğu için akıllı bir tekliftir. Ancak, bu da eklenti kullanıcıları için iyi bir seçenektir. Bu makale, eklenti kaldera formlarım için böyle bir sistem hazırlama deneyimime dayanıyor. Dinamik bir indirim kodu üretmek için sitemizde kolay dijital indirmeleri (EDD) nasıl ayarladığımı göstereceğim. Ayrıca kodu veren bir e -postayı nasıl ayarladığımı da göstereceğim.
Bu, EDD indirimleriyle nasıl çalışılacağını öğrenmek isteyenler için ve WordPress psuedo-cron sisteminin nasıl çalıştığına dair pratik örnekler için yararlı bir eğitim olacaktır. Bu makalede tartışmasam da, eklentinizden kullanıcı e -postalarını nasıl yakalayacağınızı öğrenmek isteyebilirsiniz. Daha fazla bilgi için Freemius ve Wordimpress’ten yayınları görebilirsiniz. Başlamaya başlayarak, harici bir URL’ye bir yayın isteği yapan ve bir kullanıcı e -posta adresi gönderen basit bir formu sitenize entegre etmeniz gerekir. Formun kullanıcı arayüzünüzle iyi entegre olduğundan emin olun ve teklifin tekrar görüntülenmesini önleyen izlemeyi reddetme seçeneğiniz var.
Hazırlandıktan sonra, sitenizde zorunlu (Mu-plugin) eklentisini yapın. Bunun için mu-plugin kullanmayı seviyorum çünkü çok erken hareket etmeme izin veriyor. Bu, talep için gereken süreyi azaltır. Birisi kullanım izlemesini takip etmeyi seçtiğinde, Caldera formları sitesine talepler arka planda gerçekleşir ve temalar veya başka bir şey içermesi gerekmez. Ayrıca, her zaman bu sistemin açılmasını istiyorum, bu nedenle “kullanmalı” eklentisi. Başlamadan önce, e -postanız için iki HTML dosyası oluşturduğunuzdan emin olun. E -postam için HTML yapmak için arı kullanıyorum. Yapılacak önemli şey, gerçek kod için e-postanızda kolayca değiştirilen bir yer tutucu kullanmaktır. Bu sistem oldukça basit bir sistemdir, bu yüzden tüm madeni bir Mu-plugin dosyasında oluşturuyorum. Daha sofistike olabilirsiniz ve bir dizine ihtiyacınız olabilir ve sorun değil. Unutmayın, Mu-Plugins sıradan bir eklenti gibi yüklenmez, Root Mu-Plugins’de klasörde dosyaları içeren bir dosyaya ihtiyacınız vardır. Yaptığım şeyin ilk versiyonunun sadece iki işlevi var, ikisini de kullandım. Sonra özel bir tabloda bir e -posta izleme ekledim. Bunu iki nedenden dolayı yaptım. İlk olarak dönüşümü izlemek istiyorum ve iki e -postaların aynı kişiye gönderilmesini önlemek için bir yola ihtiyacım var. Şimdilik sadece temelleri göstereceğim.
Ona bağlı ilk işlev dört şey yapar. İlk olarak, bu gelen isteği doğrular, sonra geçerse indirim kodu yapılacaktır. Sonra içinde kod bulunan bir e -posta gönderdi ve ardından bir hafta içinde gönderilecek ikinci bir e -posta planladı. İkinci işlev, ikinci e-postayı gönderen bir WP-CRON etkinliği için bir dönüş çağrısıdır. Nasıl çalıştığını tartışmadan önce, bu sistem için önemli olan WP-CRON’da hızlı bir astar yapalım. WP-Cron Server’ın temelleri, daha sonra gerçekleştirilmesi gereken görevleri planlamak için kullanılan Cron adlı bir sisteme sahiptir. WP-CRON, WordPress’te inşa edilmiş bir sistemdir, Cron gibi modaya uygun şekilde planlanan görevleri işlemek için tasarlanmış bir sistemdir. Önemli fark, Cron’un sunucunuzda çalışan bir program olması, zaman veya aralık kümesinde görevleri yerine getirebilmesidir. WP-CRON sitenizin bir parçasıdır ve yalnızca bir istek varsa çalışabilir. Bu nedenle, bir WP-CRON etkinliği planlandığında “Bunu X’de yap” demediğinizi hatırlamak önemlidir. “Bunu mümkün olan en kısa sürede yap, x zamandan sonra yap” diyorsunuz ve en erken olacak, Sitenize ilk talepten sonra X geçtikten sonra gerçekleşen. WP-CRON, WordPress kanca sistemi etrafında, ancak gecikmiş eylemlerle inşa edilmiştir. Genellikle add_action () kullandığınızda, kullandığınız dönüş çağrısı aynı oturumda yürütülür, DO_ACTION () kanca için çağrılır. WP-CRON ile, iade çağrınız için Add_action kullanırsınız, ancak eylem tetiklenene kadar gecikmeyi belirlersiniz.
Bunu gecikmiş bir eylem olarak wp_schedule_single_event () olarak düşünün. Hemen harekete geçmek yerine, bunu gelecekte yaparsınız. Bu örneğe bakın: <? PHP // Ten_minutes_later_hook eylemi 600 saniye sonra gerçekleştirin – ki on dakika.
wp_schedule_single_event (time () + 600, 'ten_minutes_later_hook');
/** cron çağrı*/
Add_action ('ten_menit_later_hook', function () {
// şimdi on dakika sonra
}); Bu tek zamanlı bir etkinliktir, tekrarlanan görevleri yapmak için wp_schedule_event () de kullanabiliriz, ancak burada gerekli değildir.
Yapabileceğimiz başka bir şey, verileri arka aramaya devam ettirmektir. Bu, wp_schedule_single_event () 'dan üçüncü argüman ile yapıldı. Bu veriler bir veritabanında saklanır ve bu nedenle performansı etkiler. Dolayısıyla, etkinliğin arkasında bir WP_POST nesnesine ihtiyacınız varsa, sadece gönderi kimliğini geçmek ve bu örnekte olduğu gibi, gönderinin nesnesini arkadan almak daha iyidir. Yapıldıktan sonra: post_status = ‘eski’;
WP_UPDATE_POST ($ Post);
}
} İlk e -posta, ilk istek gönderildikten hemen sonra gönderilen ilk e -postadır. Daha önce söylediğim gibi, gelen istekleri doğrulamamız ve EDD indirim kodları yapmamız gerekiyor. EDD’deki indirim kodu EDD_STORE_DISCOUNT () işlevi kullanılarak yapılır. Bu, rastgele bir dize kullanarak yüzde 10 indirim kodu yapma şekli. Kullanıcının e -posta adresini indirim adı olarak kullandığımı unutmayın. Bu, teknik olarak gerekli olmayan izleme amacıyla verdiğim bir tasarım kararı.
<? Php
Add_action ('init', function () {
// Yanlış istek türü ise hiçbir şey yapmayın
if (! isset ($ _post ['optin-e-posta'])))))) {
dönüş;
}
// E -posta kötüyse bir hata döndür
if (! Is_email (urldecode ($ _post [‘optin-e-posta’]))))))))) {
wp_send_json_error ([‘hata’ => ‘geçersiz e -posta’]);
}
// E -postayı temizleyin
$ e-posta = sendize_email (urLDecode ($ _Post [‘optin-e-posta’]));
// Rastgele bir indirim kodu oluşturun
$ pool = array_merge (aralık (0.9), aralık (‘A’, ‘z’), aralık (‘A’, ‘z’));
$ code = ”;
($ x = 0; $ x <3; $ x ++) {
($ i = 0; $ i $ kod,
‘İsim’ => $ e -posta,
‘Durum’ => ‘Aktif’,
‘is_single_use’ => 1,
‘Sayı’ => ’10’,
‘süresi doldu’ => tarih (‘m/h/yh: i: s’, $ süresi dolmuş),
‘type’ => ‘yüzde’, ‘maks’ => 1,
‘Kullanma’ => 1
);
$ id = edd_store_discount ($ detay, null);
// Hatayı kontrol et
if (! Is_numeric ($ id)) {
wp_send_json_error ([‘hata’ => ‘indirim yapamadı’]);
}
/** Buraya bir e -posta gönderin **/
}); Bu bizi bir indirim kodumuz ve kimliğimiz olduğu noktaya götürür. Ayrıca sterilize edilmiş bir e -posta adresimiz var – Girişe inanmadığınızı hatırlayın. Şimdi e -posta gönderme ve planlama etkinlikleri eklememiz gerekiyor:
‘geçersiz e -posta’]);
}
// E -postayı temizleyin
$ e-posta = sendize_email (urLDecode ($ _Post [‘optin-e-posta’]));
// Rastgele bir indirim kodu oluşturun
$ pool = array_merge (aralık (0.9), aralık (‘A’, ‘z’), aralık (‘A’, ‘z’));
$ code = ”;
($ x = 0; $ x <3; $ x ++) {
($ i = 0; $ i $ kod,
‘İsim’ => $ e -posta,
‘Durum’ => ‘Aktif’,
‘is_single_use’ => 1,
‘Sayı’ => ’10’,
‘süresi doldu’ => tarih (‘m/h/yh: i: s’, $ süresi dolmuş), ‘type’ => ‘yüzde’,
‘maks’ => 1,
‘Kullanma’ => 1
);
$ id = edd_store_discount ($ detay, null);
// Hatayı kontrol et
if (! Is_numeric ($ id)) {
wp_send_json_error ([‘hata’ => ‘indirim yapamadı’]);
}
// indirim kodu alın
$ code_diskon = edd_get_discount_code ($ id);
// E -posta Kurulumu
$ from_name = ‘adınız’;
$ from_address = ‘[e -posta korumalı]’;
$ başlıklar = “from: {$ from_name} >
“;
$ başlıklar. = “Cevap: {$ from_address}
“;
$ başlıklar. = “İçerik türü: metin/html; charset = utf-8
“;
Ob_start ();
dahil (dirname (__file__). ‘/emails/email-first.html’);
$ Message = ob_get_clean ();
$ mesaj = str_replace (‘{code}’, $ code_diskon, $ mesaj);
$ Cent = wp_mail ($ e -posta, ‘indirim kodunuz’, $ mesaj, $ başlıklar);
Eğer ($ gönderildi) {
// Bir hatırlatma e -postası planlayın
$ gönder = $ süresi doldu – 82800;
wp_schedule_single_event ($ gönder, ‘optinemail’, [$ indirim_code, $ e -posta]);
wp_send_json_success ([‘başarı’ => doğru, ‘hata’ => yanlış]);
} değilse {
wp_send_json_error ([‘e -posta’ => ‘e -mail gönderilmez.’]);
}
}); Bu, 12 gün sonra yürümek için bir optin -ödenek etkinliği planladı. Etkinlik kullanıcı başına bir kez çalışacaktır, ancak her seferinde WP_Schedule_Single_Event () üçüncü parametresine iletilen farklı bir e -posta adresi ve indirim kodu olacaktır.
İkinci e -posta şimdi etkinlik planlanacak, bir iade çağrısı işlevine ihtiyacımız var. “OptinEmail” kancasına add_action kullanarak bağlanması gerekir. İade çağrımızda iki argüman bekleyebiliriz – e -posta ve indirim kodu. “Umut” diyorum çünkü herhangi bir programın doğru çalıştığını veya doğru veritabanından çıkan herhangi bir veri olduğunu varsaymak asla güvenli değildir. Bu yüzden ikinci bir e -posta göndermeden önce e -postayı ve kodu doğrulamak ve temizlemek istiyoruz. <? Phpadd_ace ('optinemail', 'send_second_email');
Send_second_email işlevi ($ args) {
if (isset ($ args [0]) && is_email ($ args [0])) {
$ e -posta = sendize_email ($ args [0]);
} değilse {
dönüş;
}
if (isset ($ args [1]) && is_string ($ args [1])) {
$ code = strip_tags ($ args [1]);
} değilse {
dönüş;
}
Ob_start ();
Dahil (dirname (__file__).
$ Message = ob_get_clean ();
$ Message = str_replace ('{code}', $ code, $ mesaj);
$ from_name = 'adınız';
$ from_address = '[e -posta korumalı]';
$ başlıklar = "from: {$ from_name} >
“;
$ başlıklar. = “Cevap: {$ from_address}
“;
$ başlıklar. = “İçerik türü: metin/html; charset = utf-8
“;
$ Cent = wp_mail ($ args [1], ‘Caldera formları indirim kodunu kullanma şansı!’, $ Mesaj, $ başlıklar);