WooCommerce i Mailerlite – integracja bez wtyczek

WooCommerce MailerLite Integracja Wordpress

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.

Jak zintegrować WooCommerce i MailerLite?

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.

Skąd wziąć nr ID grupy?

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

MailerLite WooCommerce Integracja WordPress

Ten nr, podstawiamy dokładnie w to miejsce

...
// ID listy MailerLite
$mailerliteGroupIdBuyers = 123456;
...

Skąd wziąć klucz API MailerLite?

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';
...

Gdzie wkleić ten kod?

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

MailerLite WooCommerce Integracja WordPress

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.

Weź się ogarnij

Moje 7, najlepszych, sprawdzonych
sposobów na efektywną pracę zdalną
Do wdrożenia jeszcze dziś!

Może przeczytasz też:



Ta strona wykorzystuje pliki cookies. Korzystanie ze strony oznacza zgodę na ich zapis lub odczyt wg ustawień przeglądarki. Więcej informacji znajdziesz w polityce prywatności. OK, rozumiem