Któż nie chciałby, aby zaraz po dokonaniu zakupu na WooCommerce adres email klienta dodawał się na listę mailingową w MailerLite? Pewnie każdy kto korzysta z obu narzędzi byłby zainteresowany.
Najprościej byłoby ściągnąć wtyczkę i załatwić sprawę w 3 minuty. Tak też próbowałem zrobić, niestety jedyna wtyczka, jaką wówczas znalazłem, nie była kompatybilna z aktualną wersją WordPressa.
Rozwiązanie problemu, wymaga minimalnej orientacji w kodzie PHP. Wystarczy dopisać prostą funkcję, która po dokonaniu zamówienia, poprzez API doda adres kupującego na konkretną listę
//Funkcja wykonująca akcje po zamówieniu function woo_after_order( $order_id ) { // ID listy MailerLite $mailerliteGroupIdBuyers = 123456; // Sprawdzanie, czy zamówienie opłacone $subscribed = get_post_meta( $order_id, '_woo_ml_subscribe', true ); // Jeśli zamówienie opłacone if( $subscribed ) { // Szczegóły zamówienia $order = wc_get_order( $order_id ); // Dodaj adres do MailerLite mailerliteAddSubscriber( $mailerliteGroupIdBuyers, $order->billing_email, $order->billing_first_name . ' ' . $order->billing_last_name ); } } // Uruchomienie funkcji w momencie przetwarzania zamówienia add_action( 'woocommerce_checkout_order_processed', 'woo_after_order' ); // Funkcja dodająca adres do listy na Mailerlite function mailerliteAddSubscriber( $groupId, $email, $name ) { // Klucz API MailerLite $apiKey = 'a9384h9vf384hgh9w38g45jhgoijkfdg85gj'; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.mailerlite.com/api/v2/groups/" . $groupId . "/subscribers", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\"email\":\"" . $email . "\", \"name\": \"" . $name . "\"}", CURLOPT_HTTPHEADER => array( "content-type: application/json", "x-mailerlite-apikey: " . $apiKey ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { return "cURL Error #:" . $err; } else { return $response; } }
Jak widać, powyższy kod, to prosta funkcja, dodająca adresy do MailerLite, funkcja pobierająca szczegóły zamówienia i wywołujące dodanie oraz kawałek kodu, który uruchomi to wszystko w momencie przetwarzania zamówienia.
Po zalogowaniu się do MailerLite, w menu wybieramy 'Integracje’,
i potem 'Developer API’ – Użyj
W okienku zatytułowanym Grupy Subskrybentów mamy wypisane ID
Ten nr, podstawiamy dokładnie w to miejsce
... // ID listy MailerLite $mailerliteGroupIdBuyers = 123456; ...
Dokładnie w tym samym miejscu, jest okienko o tytule klucz API, to właśnie on.
Wstawiamy go w kodzie, w to miejsce:
... // Klucz API MailerLite $apiKey = 'a9384h9vf384hgh9w38g45jhgoijkfdg85gj'; ...
W pliku functions.php
w Twoim aktualnym szablonie WordPress.
Plik ten jest zlokalizowany w katalogu szablonu,
czyli /wp-content/themes/nazwa_twojego_szablonu/functions.php
Plik ten możesz edytować bezpośrednio na serwerze, poprzez edytor tekstu.
Albo z poziomu panelu administracyjnego wordpress – w menu Wygląd, wybierz opcję Edytor i dalej w prawej kolumnie Funkcje motywu functions.php
W tym miejscu możesz edytować ten plik, wklej kod, podmień Twoje zmienne i Zapisz.
Koniecznie przetestuj, czy całość działa prawidłowo, czy nie pojawiły się błędy na stronie.
Jeśli masz pytania, czy problem z wdrożeniem, to odezwij się w komentarzu.
Moje 7, najlepszych, sprawdzonych
sposobów na efektywną pracę zdalną
Do wdrożenia jeszcze dziś!