I'm using Node Checkout for a Job board. I am using this Conditional Action to change Status to Published after successful purchase:
if (isset($order)) {
foreach ($order->products as $product) {
if (isset($product->data['node_checkout_nid'])) {
$node = node_load($product->data['node_checkout_nid']);
$node->field_status['0']['value'] = 1;
$node->field_orderid['0']['value'] = $order->order_id;
$node->status = 1;
node_save($node);
}
}
}
During testing phase, this worked for me when I paid via Check. If I recall, I believe it worked during Test Gateway testing as well. After finally moving to actual Authorize.net testing, I am getting successful transactions ("transaction approved" according to debug log) however the Nodes are not being Published as they were when using Check for payment.
Does anyone have an idea what might be going on or where I can start testing? I am trying to get the merchant account info so I can confirm that the "successful transactions" are actually successful.
Comments
Comment #1
TimeBandit CreditAttribution: TimeBandit commentedI verified in the merchant account that my tests were "settled successfully" so these transactions are good.
Comment #2
TimeBandit CreditAttribution: TimeBandit commentedMaybe this has something to do with Check orders returning "1" for Status and Authorize.net returning "completed" for Status?
Comment #3
TimeBandit CreditAttribution: TimeBandit commentedNode Published is not doing the trick either.
It's interesting that the successful Check orders show as "pending" in the database yet seem to be considered completed by the conditional action triggered on "customer completes checkout," however the actual items marked as "completed" in the database are evidently not passing that conditional trigger.
Comment #4
TimeBandit CreditAttribution: TimeBandit commentedWell, for now I couldn't find a better solution than to hack UC Node Checkout module. At line 793 is inserted: