WooCommerce (modulo di WordPress) integration
E’ un plugin ecommerce gratuito che ti permette di vendere qualsiasi cosa.
Questa integrazione con WooCommerce è davvero molto semplice da fare in quanto è possibile collegare i due utilizzando il plugin di WordPress. Una volta installato, dovrai solamente configurarlo per definire cosa vuoi tracciare e come.
Puoi tracciare le commissioni per prodotto, per l’ID dell’ordine e per i coupon.
Se vuoi (o devi) integrare WooCommerce manualmente, ecco una guida.
Tracciamento dell’ordine
Per tracciare l’intero ordine, usa il seguente codice. Modifica il file wp-content/plugins/woocommerce/templates/checkout/thankyou.php e inserisci il codice sotto la linea:
<?php do_action( 'woocommerce_thankyou', $order->id ); ?>
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
PostAffTracker.setAccountId('Account_ID');
var sale = PostAffTracker.createSale();
sale.setTotalCost('<?php echo ($order->order_total - $order->order_shipping); ?>');
sale.setOrderID('<?php echo $order->id; ?>');
sale.setCurrency('<?php echo $order->get_order_currency(); ?>');
PostAffTracker.register();
</script>
Nota bene:
Se utilizzi un tema personalizzato per WooCommerce e il file thankyou.php si trova anche lì (/themes/your_custom_theme/woocommerce/checkout/thankyou.php), dovrai integrarlo al posto di quello predefinito.
Se invece vuoi un monitoraggio più dettagliato, segui il prossimo passaggio invece di questo.
Se vuoi utilizzare il plugin Lifetime Commissions, allora fai come indicato qui sopra:
PostAffTracker.register();
aggiungi questo:
sale.setData1('<?php echo $order->billing_email; ?>');
o questo:
sale.setData1('<?php echo $order->user_id; ?>');
Integrazione per prodotto
Se vuoi tracciare le commissioni per prodotto, usa questo codice invece di quello indicato nel passaggio 1. Devi metterlo nello stesso file, nello stesso posto:
wp-content/plugins/woocommerce/templates/checkout/thankyou.php
proprio sotto questa linea:
<?php do_action( 'woocommerce_thankyou', $order->id ); ?>
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
PostAffTracker.setAccountId('Account_ID');
<?php
$i = 0;
foreach ($order->get_items() as $item) {
$itemprice = $item['line_total'];
$couponCode = '';
$_product = $order->get_product_from_item($item);
$p = $_product->id;
try { //if coupon has been used, set the last one in the setCoupon() parameter
$coupon = $order->get_used_coupons();
$couponToBeUsed = (count($coupon)>1 ? count($coupon)-1 : 0);
if (isset($coupon[$couponToBeUsed])) {
$itemcount = $order->get_item_count($type = '');
$orderdiscount = $order->get_order_discount();
if ($itemcount > 0) {
$discountperitem = $orderdiscount / $itemcount;
$itemprice = $item['line_total'] - $discountperitem;
}
$couponCode = $coupon[$couponToBeUsed];
}
}
catch (Exception $e) {
//echo "<!--Error: ".$e->getMessage()."-->";
}
if (!empty($_product->sku)) {
$p = $_product->sku;
}
echo "var sale".$i." = PostAffTracker.createSale();";
echo "sale".$i.".setTotalCost('".$itemprice."');";
echo "sale".$i.".setOrderID('".$order->id."($i)');";
echo "sale".$i.".setProductID('".$p."');";
echo "sale".$i.".setCurrency('".$order->get_order_currency()."');";
echo "sale".$i.".setCoupon('".$couponCode."');";
$i++;
}
?>
PostAffTracker.register();
</script>
Salva le tue modifiche. E questo è tutto, il tuo negozio è stato integrato.
Se vuoi utilizzare il plugin Lifetime Commissions, allora fai come indicato qui sotto:
echo "sale".$i.".setCoupon('".$couponCode."');";
add this:
echo "sale".$i.".setData1('".$order->billing_email."');";
or this:
echo "sale".$i.".setData1('".$order->user_id."');";
Integrazione del modulo PayPal in WooCommerce – parte 1
Trova e modifica il file seguente:
- per WooCommerce 2.2.11 e per le versioni precedenti: woocommerce/includes/gateways/paypal/class-wc-gateway-paypal.php
- per WooCommerce 2.3.3 e per le versioni successive: woocommerce/includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php
Puoi modificare i file del plugin sia usando l’editor di plugin in WordPress o puoi accedere ai file della tua installazione WP via FTP.
Nel suddetto file troverai la funzione get_paypal_args() e al suo interno troverai una linea con:
'return' =>
e una linea con:
'notify_url' =>
Cambia le linee che hai appena trovato aggiungendo un codice speciale:
'return' => esc_url( add_query_arg( 'utm_nooverride', '1', $this->get_return_url( $order ) ) ).'&paypal=1', // Post Affiliate Pro integration snippet
'notify_url' => $this->notify_url.'?pap_custom='.$_POST['pap_custom'], // Post Affiliate Pro integration snippet
Integrazione del modulo PayPal in WooCommerce – parte 2
- per WooCommerce 2.2.11 e per le versioni inferiori: nello stesso file (woocommerce/includes/gateways/paypal/class-wc-gateway-paypal.php), trova la funzione check_ipn_request_is_valid e in essa sotto la linea della funzione check_ipn_request_is_valid aggiungi il codice trovato nel riquadro sottostante
- per WooCommerce 2.3.3 e per le versioni successive: trova e modifica il file di (woocommerce/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php) e in quel file trova la funzione validate_ipn(). All’interno di questa funzione trova la seguente linea:
if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
e proprio sotto quella linea devi aggiungere il codice che si trova nella casella qui sotto:
/* Post Affiliate Pro integration snippet */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://URL_TO_PostAffiliatePro/plugins/PayPal/paypal.php?pap_custom='.$_GET['pap_custom']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_exec($ch);
/* /Post Affiliate Pro integration snippet */
Salva il tuo lavoro e continua con il prossimo passaggio.
Integrazione del modulo PayPal in WooCommerce – parte 3
Modifica il file: woocommerce/templates/checkout/form-checkout.php.
Trova questa linea:
<?php do_action( 'woocommerce_checkout_order_review' ); ?>
e inserisci questo codice sotto la linea:
<!-- Post Affiliate Pro integration snippet -->
<input type="hidden" name="pap_custom" value="" id="pap_dx8vc2s5">
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/notifysale.php" type="text/javascript">
</script>
<!-- /Post Affiliate Pro integration snippet -->
Integrazione del modulo PayPal in WooCommerce – parte 4
Se usi solo PayPal come integrazione di pagamento, puoi ignorare questo passaggio.
Per assicurarci che l’integrazione non crei degli ordini duplicati (uno da PayPal e uno dalla pagina di ringraziamento), dobbiamo impostare la pagina di ringraziamento in modo che non tenga conto delle commissioni per gli ordini PayPal.
Per farlo, devi modificare un po’ il codice di tracciamento della pagina di ringraziamento. Prima di tutto, modifica il file woocommerce/templates/checkout/thankyou.php e trova questa linea:
<?php do_action( 'woocommerce_thankyou', $order->id ); ?>
Inserisci questo codice sotto la linea:
<?php
if (empty($_GET['paypal'])) :
?>
Adesso, sotto le ultime linee di integrazione:
PostAffTracker.register();
</script>
Aggiungi questo codice:
<?php endif; ?>
E questo è tutto. Salva il tuo lavoro e colme ultimo passaggio attiva il tuo plugin di gestione PayPal IPN nel tuo account di Post Affiliate Pro.
Integrazione con Stripe
Se vuoi integrare i pagamenti periodici di Stripe, puoi farlo in pochi piccoli passi. Prima di tutto, devi seguire i passaggi 1 o 2 e utilizzare anche l’email del cliente in data1:
sale.setData1('<?php echo $order->billing_email; ?>');
Per far sì che Stripe faccia sapere al tuo PAP di un pagamento periodico, devi aggiungere un nuovo webhook nel tuo account Stripe, il Tuo Account (in alto a destra)> Impostazioni dell’Account> Webhooks … usa questo URL:
https://URL_TO_PostAffiliatePro/plugins/Stripe/stripe.php
Oltre a questo, devi abilitare (e configurare) il plugin Stripe e il plugin Lifetime Commissions.
Non dimenticate di inserire il codice di tracciamento dei clic nel tuo file di intestazione o in quello a piè di pagina di WP, utilizzando il menu Appearance.
NOTA BENE: Nel caso in cui il monitoraggio delle vendite non funzioni, controlla iniziamente se il codice di monitoraggio delle vendite si trova al suo posto, e successivamente controlla se c’è una directory speciale per woocommerce nel tuo tema personalizzato. Se la trovi, ti basterà solamente integrare il file /checkout/thankyou.php lì.