$success, 'failure' => $failure, 'problem' => $problem, ); Plgntls::update_option_safe($option_name, $data); } function update_paypal_credentials_CIPF($request, $option_name, $option_data, $option_default) { Plgntls::debug_infos(); if (!isset( $request['sandbox_or_live'], $request['live_client_id'], $request['live_client_secret'], $request['sandbox_client_id'], $request['sandbox_client_secret'], )) { return; } /* * force price 1 cent ? * */ $force_1_cent = false; if (isset($request['force_1_cent'])) { $force_1_cent = true; } /* * is sandbox or live ? * */ $is_sandbox = false; if ($request['sandbox_or_live'] === 'sandbox') { $is_sandbox = true; } else if ($request['sandbox_or_live'] === 'live') { $is_sandbox = false; } /* * ids * */ $live_client_id = $request['live_client_id']; $live_client_secret = $request['live_client_secret']; $sandbox_client_id = $request['sandbox_client_id']; $sandbox_client_secret = $request['sandbox_client_secret']; /* * update the option with new credentials * set_paypal_options_CIPF($is_sandbox, $client_id, $client_secret); */ $data = array( 'force_1_cent' => $force_1_cent, 'is_sandbox' => $is_sandbox, 'live_client_id' => $live_client_id, 'live_client_secret' => $live_client_secret, 'sandbox_client_id' => $sandbox_client_id, 'sandbox_client_secret' => $sandbox_client_secret, ); Plgntls::update_option_safe($option_name, $data); } /* * update emails * */ function update_emails_settings_option_CIPF($request, $option_name, $option_data, $option_default) { Plgntls::debug_infos(); /* * loop through saved data option * update them * add them to the option that will be saved * */ foreach ($option_data as $email_type => $email_options) { $ret_update = update_email_by_type_CIPF($email_type, $email_options, $option_default[$email_type], $request); if ($ret_update !== false) { $option_data[$email_type] = $ret_update; } } /* * to reorder and add new data with the default data * also take the name of the default * */ $new_option = array(); foreach ($option_default as $email => $options) { if (isset($option_data[$email])) { $new_option[$email] = $option_data[$email]; } else { // it means it was not in the saved data, but was added in the default $ret_update = update_email_by_type_CIPF($email, $options, $request); if ($ret_update !== false) { $new_option[$email] = $ret_update; } else { $new_option[$email] = $options; } } $new_option[$email]['name'] = $options['name']; } Plgntls::update_option_safe($option_name, $new_option); } /* * utility function to update the emails * */ function update_email_by_type_CIPF($email_type, $email_options, $email_default_options, $request) { Plgntls::debug_infos(); $is_new = false; /* * set notification/confirmation_send to false by default, * because the request only contains the value 'on' if checked, nothing for false * */ $email_options['notification_send'] = false; $email_options['confirmation_send'] = false; /* * loop through all options to update them * */ foreach ($email_default_options as $default_option => $default_value) { if (!isset($request[$email_type.'_'.$default_option])) { if (isset($email_options[$default_option])) { continue; } $is_new = true; $email_options[$default_option] = $default_value; continue; } $new_value = $request[$email_type.'_'.$default_option]; $value = $email_options[$default_option]; if ($new_value === $value) { continue; } $is_new = true; if ($default_option === 'notification_send' || $default_option === 'confirmation_send') { $email_options[$default_option] = true; } else { $email_options[$default_option] = $new_value; } } if ($is_new === false) { return false; } else { return $email_options; } } ?>