Jetpack to świetne rozwiązanie do budowania listy abonentów, a Intercom to rozwiązanie, które pozwoli Ci zarządzać abonentami i pozostawać w skontaktuj się z nimi.

W tym samouczku pokażemy, jak zwiększyć listę subskrybentów za pomocą Jetpack i Intercom.

Niektóre osoby przyszły mnie zapytać, czy można zezwolić użytkownikom na subskrybowanie i otrzymywanie wszystkich ich artykułów pocztą elektroniczną oraz przechowywanie ich adresów e-mail w domofonie. Natychmiast odpowiedziałem pozytywnie, zwłaszcza jako API (Application Programming Interface) jest łatwy w użyciu.

Pomyślałem więc o użyciu wtyczki subskrypcyjnej, która wyśle ​​adresy e-mail do Interkomu przez API. I to jest dokładnie to, co zrobię.

Mamy już zainstalowany Jetpack, więc wystarczy aktywować moduł „ Subskrypcje …Jednak nie jest to takie proste, co jeśli chcesz wyświetlić forma w niestandardowej lokalizacji (na przykład niestandardowa strona)? Pokażemy Ci również, jak dostosować lokalizację forma.

Pierwsze kroki

Zaczniemy od forma podstawowy :

Nigdy nie przegap naszych postów. Otrzymuj aktualizacje do swojej skrzynki pocztowej, gdy tylko zostaną opublikowane.

Dla każdego, kto może być zainteresowany, dodałem tutaj formularz za pomocą akcji " genesis_after_entry Motyw Genesis, ale jeśli nie używasz Genesis, możesz użyć filtru „ the_content I połączyłem twoją treść z treścią artykułu.

W naszym przykładzie wyświetlimy formularz po 3e artykuł. Jeśli korzystasz z filtra, użyj funkcji „ ob_start "I" ob_get_clean Aby zainicjować bufor i użyć jego zawartości.

światowy $ postu, $ wp_query; 
if (is_home() && $ wp_query->ilość postów[3]->ID == $ postu->ID) {       
     zawierać(get_stylesheet_directory()."/includes/templates/snippets/blog-archive-signup.php"); 
}

Oto kod CSS do stylu formularza.

# Blog-archive-zarejestruj { szerokość:100% ! important; jasny:obie; } 
# Blog-archive-zarejestruj { @include breakpoint ($ tablet) { tło:URL ( "images / niskiego bg.png") nie powtarzaj 0 0; wysokość:200px; } } 
# zestaw pola blog-archiwum-rejestracja { granica:0; szerokość:100%; padding-left:50px; } 
# zestaw pola blog-archiwum-rejestracja { @include breakpoint (max-width $ tablet) { padding-left:0px } } 
# legenda blog-archiwum-zarejestruj się { padding-top:20px; } 
# blog-archive-signup # pola-kontener { szerokość:100% } 
# blog-archive-signup input [nazwa * = 'email'] { tło:URL ( "images / niskiego field.png") nie powtarzaj 0 0; wyściółka:0; margines:0; wysokość:44px; granica:0; szerokość:560px; Wysokość linii:22px; unosić się:lewo; } 
# blog-archive-signup input [nazwa * = 'email'] { @include breakpoint (max-width $ tablet) { wyściółka:0; margines:0; granica:0; szerokość:50%; unosić się:lewo; } } 
# blog-archive-signup input [type = 'submit'] { tło:URL ( "images / niskiego button.png") nie powtarzaj 0 0; wyściółka:0; margines:0; wysokość:44px; granica:0; szerokość:180px; kolor: #fff; text-align:centrum }

Jak dodać subskrybentów

Teraz zarejestrujemy użytkowników w Jetpack przy użyciu „ jQuery.ajax ".

$("# Blog-archive-rejestrację").Zatwierdź(funkcjonować(e) { e.preventDefault(); $("LoadingMessage #, # failMessage").ukryć().usunąć(); 
      było __button = $("blog-archive-signup input [type =" submit "]").otrzymać(0); $("blog-archive-signup input [type =" submit "]").po(codeable_spinner); 
      było __DATA = $(to).serializacji() + '& secure =' + codeableVars.bezpieczeństwo + „& action = blog_archive_signup”;   
      $.pisać(codeableVars.ajaxurl,__DATA,funkcjonować(odpowiedź) { konsola.log(odpowiedź); if (odpowiedź.sukces) { 
          $("#codeable_spinner").replaceWith(„Sukces!”).opóźnienie(5000).Fadeout(„Wolna”).usunąć(); } więcej { 
          $("#codeable_spinner").replaceWith(""+odpowiedź.wiadomość+"").opóźnienie(5000).Fadeout(„Wolna”).usunąć(); 
      } 
}) 
})

Teraz musimy zapisać użytkownika w Jetpack i Intercom. Zagłębiłem się w kod Jetpacka, aby dowiedzieć się, w jaki sposób dodaje on subskrybentów, i znalazłem klasę „Jetpack_Subscriptions” oraz metodę statyczną, która przyjmuje e-mail jako parametr. A w przypadku Intercomu wystarczy proste żądanie CURL.

add_action('Wp_ajax_landing_page_signup', 'Blog_archive_signup')); 
add_action('Wp_ajax_nopriv_landing_page_signup', 'Blog_archive_signup'); 
funkcjonować blog_archive_signup() { 
  $ dane = szyk( „E-mail” => $ _ POST['Blog_archive_partition_email'], 'Custom_attributes' => szyk('Subscribed_via' => 'Blog_archive_partition') ); 
  $ wezwanie = wswp_make_api_call($ dane); 
  $ odpowiedź = szyk(„Sukces”=>prawdziwy,"Message" => "Bpa_signup"); 
  $ subskrybować = Jetpack_Subscriptions::subskrybuj($ _REQUEST[$ prefix.'_email']); 
  delete_transient('Wpcom_subscribers_total'); 
  stats_update_blog();  
  // odśwież liczbę subskrybentów w wp-admin  
  wp_send_json($ odpowiedź); 
  wyjście(); 
} 
funkcjonować wswp_make_api_call($ dane) { 
   $ curl = curl_init(); curl_setopt_array($ curl, szyk( CURLOPT_HTTPHEADER => szyk("Content-Type: application / json", "Zaakceptuj: aplikacja / json"), CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'Https://api.intercom.io/users', CURLOPT_POST => 1, CURLOPT_USERPWD => INTERCOM_APP_ID . „” . INTERCOM_API_KEY, CURLOPT_POSTFIELDS => json_encode($ dane), CURLOPT_HEADER => fałszywy, )); 
   // Zwróć uwagę, że musisz ustawić klucz na prawidłowe wartości  
  $ powrót = json_decode(curl_exec($ curl), prawdziwy); 
  curl_close($ curl); 
  powrót $ powrót; 
}

To wszystko. Teraz, gdy ktoś wypełni ten formularz, natychmiast otrzyma wiadomość e-mail z potwierdzeniem na Jetpack z informacją, że subskrybuje, i otrzyma e-maile z Twoimi artykułami, gdy tylko zostaną opublikowane.

Za kulisami są rejestrowani w Interkomie z etykietą „Subscribed_Via => partycja archiwum bloga”. Następnym razem powiem ci, jak możesz również wysłać subskrybentów wtyczki Thrive Leads do Intercom données dodatkowe informacje, które pozwolą rozróżnić je wszystkie.

Jeśli nie opanujesz przydatności „ codeableVars.security Musisz wiedzieć, że zawiera „ nuncjusz WordPress. Zwykle można to zrobić za pomocą funkcji php „ wp_nonce_field () W formularzu, ale w skrypcie zawierającym tylko JavaScript pole nonce jest już dostępne w funkcji JS „ wp_localize_script () ".

To wszystko, co można zrobić w tym samouczku. Możesz zadawać nam pytania lub udostępniać samouczek znajomym w swoich ulubionych sieciach społecznościowych.