Include item titles and SKUs in Stripe metadata

https://www.drupal.org/node/2840526
This commit is contained in:
Matt
2017-02-18 18:58:28 -06:00
parent 0e2671b975
commit 6b818da401

View File

@ -323,6 +323,20 @@ function uc_stripe_settings_form() {
'#default_value' => variable_get('uc_stripe_poweredby', FALSE), '#default_value' => variable_get('uc_stripe_poweredby', FALSE),
); );
$form['uc_stripe_settings']['uc_stripe_metadata_titles'] = array(
'#type' => 'checkbox',
'#title' => t('Metadata: Title'),
'#description' => t('Include order item title(s) in Stripe metadata.'),
'#default_value' => variable_get('uc_stripe_metadata_titles', FALSE),
);
$form['uc_stripe_settings']['uc_stripe_metadata_models'] = array(
'#type' => 'checkbox',
'#title' => t('Metadata: Model'),
'#description' => t('Include item model(s) (SKU(s)) in Stripe metadata.'),
'#default_value' => variable_get('uc_stripe_metadata_models', FALSE),
);
return $form; return $form;
} }
@ -539,7 +553,6 @@ function uc_stripe_charge($order_id, $amount, $data) {
return $result; return $result;
} }
// Charge the customer // Charge the customer
try { try {
@ -548,11 +561,32 @@ function uc_stripe_charge($order_id, $amount, $data) {
throw new Exception('No customer ID found'); throw new Exception('No customer ID found');
} }
// Set up titles and SKUs
$titles = array();
$models = array();
foreach($order->products as $item){
$titles[] = $item->title;
$models[] = $item->model;
}
if (variable_get('uc_stripe_metadata_titles',FALSE)==1 && variable_get('uc_stripe_metadata_models',FALSE)==1) {
$metadata = array("titles" => implode(";", $titles),"models" => implode(";", $models));
} elseif (variable_get('uc_stripe_metadata_titles',FALSE)==1 && variable_get('uc_stripe_metadata_models',FALSE)==0) {
$metadata = array("titles" => implode(";", $titles));
} elseif (variable_get('uc_stripe_metadata_titles',FALSE)==0 && variable_get('uc_stripe_metadata_models',FALSE)==1) {
$metadata = array("models" => implode(";", $models));
}
dpm($metadata,$name="metadata");
dpm($titles,$name="titles");
dpm($models,$name="models");
$params = array( $params = array(
"amount" => $amount, "amount" => $amount,
"currency" => strtolower($order->currency), "currency" => strtolower($order->currency),
"customer" => $stripe_customer_id, "customer" => $stripe_customer_id,
"description" => t("Order #@order_id", array("@order_id" => $order_id)), "description" => t("Order #@order_id", array("@order_id" => $order_id)),
"metadata" => $metadata,
); );
if (!empty($shipping_info)) { if (!empty($shipping_info)) {
$params['shipping'] = $shipping_info; $params['shipping'] = $shipping_info;