Issue
Need to convert an Array Deference that works in PHP 5.4 to a version that works with PHP 5.3. I'm unable to update my live site PHP so I'm a bit stuck. What I'm trying to accomplish is create a coupon code for Drupal 7 as a form is submitted.
Where I've looked:
PHP syntax for dereferencing function result Good discussion. Almost looks like it isn't possible at all. There are several good solution examples that I haven't been able to convert to my issue.
5.4 dereferencing to valid 5.3 array call Very similar to my issue but I haven't been able to figure out a way using it.
Original that works in PHP 5.4:
$coupon->store_discount_reference = ['und'=>[['target_id'=>"57"]]];
$coupon->store_coupon_exclusive = ['und'=>[['value'=>"0"]]];
$coupon->store_coupon_conditions = ['und' => [
[
'condition_name'=>'store_coupon_usage_evaluate_usage',
'condition_settings'=> ['max_usage'=>'1'],
'conditions_negative'=>0,
'remove_condition'=>'Remove'
],
]];
What I Have Tried
$coupon->store_discount_reference = array('und'=> array('target_id'=>"57"));
$coupon->store_coupon_exclusive = array('und'=> array('value'=>"0"));
$coupon->store_coupon_conditions = array('und' => array('condition_name'=>'store_coupon_usage_evaluate_usage','condition_settings'=> array('max_usage'=>'1'),'conditions_negative'=>0,'remove_condition'=>'Remove'));
Full Chunk
$coupon = new stdClass();
$coupon->type = "discount_coupon";
$coupon->coupon_id = '';
$coupon->code = $code;
$coupon->bulk = false;
$coupon->created = '';
$coupon->status = 1;
$coupon->uid = 0;
$coupon->is_new = true;
$coupon->commerce_discount_reference = ['und'=>[['target_id'=>"57"]]];
$coupon->commerce_coupon_exclusive = ['und'=>[['value'=>"0"]]];
$coupon->commerce_coupon_conditions = ['und' => [
[
'condition_name'=>'commerce_coupon_usage_evaluate_usage',
'condition_settings'=> ['max_usage'=>'1'],
'conditions_negative'=>0,
'remove_condition'=>'Remove'
],
]];
commerce_coupon_save($coupon);