If the customer uses PayPal Express Checkout and the country they specify is not supported by the store (e.g. the country is disabled or deleted), a PHP warning is issued:
Code:
[16-Apr-2015 13:14:57 Australia/Victoria] #1 array_merge() called at [/home/xxxx/public_html/yyyy/includes/modules/payment/paypalwpp.php:2320]
#2 paypalwpp->findMatchingAddressBookEntry() called at [/home/xxx/public_html/yyyy/includes/modules/payment/paypalwpp.php:1905]
#3 paypalwpp->ec_step2_finish() called at [/home/xxx/public_html/yyyy/includes/modules/payment/paypalwpp.php:1759]
#4 paypalwpp->ec_step2() called at [/home/xxx/public_html/yyyy/ipn_main_handler.php:80]
[16-Apr-2015 13:14:57 Australia/Victoria] PHP Warning: array_merge(): Argument #1 is not an array in /home/xxx/public_html/yyyy/includes/modules/payment/paypalwpp.php on line 2320
Line 2320:
Code:
$this->zcLog('findMatchingAddressBookEntry - 1-stats', 'lookups:' . "\n" . print_r(array_merge($country->fields, array('zone_country_id' => $country_zone_check->fields['zone_id']), $logMsg), true) . "\n" . 'check_zone: ' . $check_zone . "\n" . 'zone:' . $zone_id . "\nSubmittedAddress:".print_r($address_question_arr, TRUE));
The warning is being thrown because the first argument ($country->fields) is not an array since the country is not supported. I suggest correcting this by the following change:
Code:
$country_array = ($country->EOF) ? array () ? $country->fields;
$this->zcLog('findMatchingAddressBookEntry - 1-stats', 'lookups:' . "\n" . print_r(array_merge($country_array, array('zone_country_id' => $country_zone_check->fields['zone_id']), $logMsg), true) . "\n" . 'check_zone: ' . $check_zone . "\n" . 'zone:' . $zone_id . "\nSubmittedAddress:".print_r($address_question_arr, TRUE));
Bookmarks