. */ class CFDBIntegrationQuform { /** * @var CF7DBPlugin */ var $plugin; /** * @param $plugin CF7DBPlugin */ function __construct($plugin) { $this->plugin = $plugin; } public function registerHooks() { // http://support.themecatcher.net/quform-wordpress/guides/hooks/iphorm_post_process add_action('iphorm_post_process', array(&$this, 'saveFormData'), 10, 1); } /** * @param $form iPhorm * @return bool */ public function saveFormData($form) { try { $data = $this->convertData($form); return $this->plugin->saveFormData($data); } catch (Exception $ex) { $this->plugin->getErrorLog()->logException($ex); } return true; } /** * @param $form iPhorm * @return object */ public function convertData($form) { // http://support.themecatcher.net/quform-wordpress/guides/basic/getting-form-values $allValues = $form->getValues(); // $this->plugin->getErrorLog()->log( // print_r($form, true)); if (is_array($allValues)) { $postedData = array(); $uploadFiles = array(); foreach ($allValues as $fieldId => $value) { // $fieldId is something like "iphorm_2_1" // get the human-readable field label $fieldName = $fieldId; //iPhorm_Element $element = $form->getElement($fieldId); if (is_object($element)) { $fieldName = $element->getLabel(); } if (is_array($value)) { if (array_key_exists('day', $value)) { $postedData[$fieldName] = sprintf('%s-%s-%s', $value['year'], $value['month'], $value['day']); } else if (array_key_exists('hour', $value)) { $postedData[$fieldName] = sprintf('%s:%s %s', $value['hour'], $value['minute'], $value['ampm']); } else if (array_key_exists(0, $value)) { if (is_array($value[0])) { // file upload foreach ($value as $upload) { $postedData[$fieldName] = $upload['text']; $uploadFiles[$fieldName] = $upload['fullPath']; } } else { $postedData[$fieldName] = implode(',', array_values($value)); } } } else { $postedData[$fieldName] = $value; } } return (object)array( 'title' => $form->getName(), 'posted_data' => $postedData, 'uploaded_files' => $uploadFiles); } } }