We are trying to pass woocommerce subscription renewal data to a loyalty rewards program and are having all kinds of issues and have been unable to get relevant woocommerce subscription information or anything to work. Our full loyalty code for zinrelo works with manual data.
FUll code with your suggestions runs in functions file
add_action( 'woocommerce_subscription_renewal_payment_complete', 'custom_add_subscription_points', 10, 1 );
function custom_add_subscription_points( $subscription ) {
if ( ! $subscription )
return;
// Get related orders
$orders_ids = $subscription->get_related_orders();
// Get the last renewal related Order ID
$order_id = reset( $order_ids );
$order = wc_get_order($order_id);
$order_id = $order->get_id();
$order_email = $order->get_billing_email();
$order_date = $order->get_date_completed();
$order_total = $order->get_total();
$order_subtotal = $order->get_subtotal();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.zinrelo.com/v1/loyalty/purchase");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "user_email={$order_email}&activity_id=made_a_purchase&order_{id=$order_id}&total={$order_total}&subtotal={$order_subtotal}");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Partner-Id: 000000";
$headers[] = "Api-Key: 000000";
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
}