monopoly-e-commerce

Si vous utilisez une boutique en ligne WooCommerce sur votre WordPress, et que vous souhaitez envoyer une newsletter à vos clients via MailPoet (anciennement Wysija), il peut être intéressant de pouvoir demander directement à l’internaute depuis la page de commande, s’il souhaite s’inscrire ou non à votre newsletter.

Étape 1 – Créer une liste d’abonné

Aller dans Wysija, créer une nouvelle liste d’abonné. Pour se faire, connectez-vous à votre administration WordPress et rendez-vous dans dans Wysija puis Abonnés.

Cliquez ensuite sur le bouton en haut Ajouter une liste, saisissez le nom de votre nouvelle liste et validez en cliquant sur le bouton bleu Ajouter une liste.

Étape 2 – Repérer l’ID de votre liste

Toujours, dans Wysija, cliquez sur Abonnés puis sur le bouton bleu en haut Modifier les listes. Dans la nouvelle page qui apparaît, survolez le nom de la liste que vous souhaitez utiliser. En bas et à gauche de votre écran apparaît une URL.

Il vous suffit enfin d’identifier le chiffre situé après &id= pour connaître l’ID de votre liste, dans mon cas, l’ID est 4.

Étape 3 – Ajouter une fonction dans votre fichier functions.php

Copiez le code ci-dessous et ajoutez le au fichier functions.php de votre thème.

Modifiez les deux variables $nb_list_id (situé à la 3ième ligne) et $listID (situé à la ligne 18) par l’ID de votre liste. Pour rappel, dans mon cas l’ID est 4.

function mgris_subscription_checkbox() {
// changer cette variable en fonction de l'id de votre liste
	$nl_list_id = 4;

	if(!is_user_logged_in()) {
		echo '<p>';
		_e('<span>Recevez toute l\'année les offres promotionnelles en vous inscrivant à notre newsletter</span><br />','textdomain');
		_e('<label for="subscription-box">S\'inscrire à notre newsletter</label>', 'textdomain');
		echo '<input id="subscription-box" type="checkbox"name="subscribe_newsletter" value="'.$nl_list_id.'" />';
		echo '</p>';
	}
}

add_action('woocommerce_checkout_after_customer_details', 'mgris_subscription_checkbox');

function mgris_subscription_newsletter_checkout() {
// changer cette variable en fonction de l'id de votre liste
	$listID = array(4);

	$subscrib = $_POST['subscribe_newsletter'] ;
	$email = $_POST['billing_email'];

	if(!empty($subscrib) && !empty($email)) {
		$userData=array(
			'email' => $email,
			'firstname' => $_POST['billing_first_name'],
			'lastname' => $_POST['billing_last_name']
		);

		$data=array(
			'user' => $userData,
			'user_list' => array( 'list_ids'=> $listID )
		);

		$userHelper=&WYSIJA::get('user','helper');
		$userHelper->addSubscriber($data);
	}
}

add_action('init','mgris_subscription_newsletter_checkout');

Concrètement, ce code va ajouter une phrase – que vous pouvez aisément modifier ligne 7 de ce code, avec une case à cocher dans la page Commander.  Lorsque cette case est cochée, l’internaute sera enregistré dans votre liste d’abonné Wysija.

N.B : si vous avez activez la création de compte lors du passage d’une commande, la fonction que vous venez d’ajouter est pensée pour ne s’afficher que lorsque l’internaute n’est pas connecté. Cela permet de proposer à votre client de s’inscrire qu’une seule fois (et non à chaque commande…).

Ci-dessous, un exemple du résultat final sur la page de commande.

resultat

Attention : si vous êtes connecté avec votre compte administrateur, la case à cocher ne s’affichera pas si vous essayez de passer une commande.

5 commentaires

Laisser un commentaire