Bonjour,
Je vous invite à consulter la fonction "checkPaymentDisplay" de Paypal Recurring.
Vous y verrez comment accéder directement aux informations liées au recurring :
$recurring_time_value = 0;
$recurring_time_unit = false;
if(!empty($order->paymentOptions['recurring']) && !empty($order->paymentOptions['recurring']['duration'])) {
$recurring_time_unit = substr($order->paymentOptions['recurring']['duration'], -1);
if(!in_array($recurring_time_unit, array('d','w','m','y')))
$recurring_time_unit = false;
$recurring_time_value = (int)$order->paymentOptions['recurring']['duration'];
}
C'est dans cette même fonction que le texte sur le recurring va être ajouté à la description.
Ainsi, via " $order->paymentOptions " vous avez tout le nécessaire sans avoir à regarder le contenu du panier.
Il y a également le champs "value" qui vous indique le prix du renouvellement dans le cas ou l'intégralité du panier n'est pas en recurrence.
Pour la partie confirmation de commande ; la récupération du "payment option recurring" va demander de regarder dans plusieurs endroits :
$recurring_data = false;
if(!empty($order->cart->paymentOptions['recurring']))
$recurring_data = $order->cart->paymentOptions['recurring'];
else if(!empty($order->cart->order_payment_params->recurring))
$recurring_data = $order->cart->order_payment_params->recurring;
else if(!empty($order->order_payment_params->recurring))
$recurring_data = $order->order_payment_params->recurring;
Pour la suite, c'est le même principe (les mêmes données).
La partie importante avec un plugin de recurring est la gestion du renouvellement qui va demander la création d'une nouvelle commande :
$orderClass = hikashop_get('class.order');
$order_id = $orderClass->createRecurringSuborder($original_order_id);
Et c'est cette fonction dans le core d'HikaShop qui va s'occuper de ne mettre que les produits recurring dans la nouvelle commande ; il n'y a pas besoin pour le plugin de gérer les produits ; tout à déjà été implémenté.
Cordialement,