Ejemplo n.º 1
0
 /**
  * @param $post_id
  */
 function save_meta_values($post_id, $post)
 {
     $meta_fields = $this->get_meta_fields();
     if (isset($_POST['post_ID']) && !empty($_REQUEST['rtbiz_is_staff_member']) && 'yes' == $_REQUEST['rtbiz_is_staff_member']) {
         $users = rtbiz_get_wp_user_for_contact($_POST['post_ID']);
         if (empty($users[0])) {
             $primary_email = rtbiz_get_entity_meta($_POST['post_ID'], self::$primary_email_key, true);
             $userid = email_exists($primary_email);
             if (rtbiz_is_primary_email_unique($primary_email, $_POST['post_ID']) && !is_wp_error($userid) && !p2p_connection_exists($this->post_type . '_to_user', array('to' => $userid))) {
                 rtbiz_connect_contact_to_user($_POST['post_ID'], $userid);
             } else {
                 update_user_meta(get_current_user_id(), Rtbiz_Entity::$meta_key_prefix . 'wp_user_not_connected_' . $_POST['post_ID'], true);
             }
         }
     }
     if (isset($_POST['contact_meta'][self::$primary_email_key]) && empty($_POST['contact_meta'][self::$primary_email_key])) {
         update_user_meta(get_current_user_id(), Rtbiz_Entity::$meta_key_prefix . 'empty_primary_email_' . $_POST['post_ID'], true);
     } else {
         delete_user_meta(get_current_user_id(), Rtbiz_Entity::$meta_key_prefix . 'empty_primary_email_' . $_POST['post_ID']);
     }
     foreach ($meta_fields as $field) {
         if (isset($_POST['contact_meta'][$field['key']]) && !empty($_POST['contact_meta'][$field['key']])) {
             if ($field['key'] == self::$primary_email_key) {
                 if (!rtbiz_is_primary_email_unique($_POST['contact_meta'][$field['key']], $_POST['post_ID'])) {
                     update_user_meta(get_current_user_id(), Rtbiz_Entity::$meta_key_prefix . 'unique_primary_email_' . $_POST['post_ID'], true);
                     continue;
                 } else {
                     delete_user_meta(get_current_user_id(), Rtbiz_Entity::$meta_key_prefix . 'unique_primary_email_' . $_POST['post_ID']);
                 }
             }
             $contact_meta[$field['key']] = $_POST['contact_meta'][$field['key']];
             if (isset($field['is_multiple']) && $field['is_multiple']) {
                 $oldmeta = self::get_meta($post_id, $field['key']);
                 foreach ($oldmeta as $ometa) {
                     self::delete_meta($post_id, $field['key'], $ometa);
                 }
                 foreach ($contact_meta[$field['key']] as $nmeta) {
                     if ('' == $nmeta) {
                         continue;
                     }
                     self::add_meta($post_id, $field['key'], $nmeta);
                 }
             } else {
                 self::update_meta($post_id, $field['key'], $_POST['contact_meta'][$field['key']]);
             }
         } else {
             $oldmeta = self::get_meta($post_id, $field['key']);
             foreach ($oldmeta as $ometa) {
                 self::delete_meta($post_id, $field['key'], $ometa);
             }
         }
     }
     Rtbiz_Contact_Profile_Access::save($post_id, null);
     parent::save_meta_values($post_id, $post);
 }
Ejemplo n.º 2
0
 /**
  *
  * Save Meta Fields
  *
  * @param $post_id
  */
 protected function save_meta_values($post_id, $post)
 {
     foreach ($this->meta_fields as $field) {
         if (isset($_POST['company_meta'][$field['key']]) && !empty($_POST['company_meta'][$field['key']])) {
             if ($field['key'] == self::$primary_email) {
                 if (!rtbiz_is_primary_email_unique_company($_POST['company_meta'][$field['key']])) {
                     continue;
                 }
             }
             $company_meta[$field['key']] = $_POST['company_meta'][$field['key']];
             if (isset($field['is_multiple']) && $field['is_multiple']) {
                 $oldmeta = self::get_meta($post_id, $field['key']);
                 foreach ($oldmeta as $ometa) {
                     self::delete_meta($post_id, $field['key'], $ometa);
                 }
                 foreach ($company_meta[$field['key']] as $nmeta) {
                     if ('' == $nmeta) {
                         continue;
                     }
                     self::add_meta($post_id, $field['key'], $nmeta);
                 }
             } else {
                 self::update_meta($post_id, $field['key'], $_POST['company_meta'][$field['key']]);
             }
         } else {
             $oldmeta = self::get_meta($post_id, $field['key']);
             foreach ($oldmeta as $ometa) {
                 self::delete_meta($post_id, $field['key'], $ometa);
             }
         }
     }
     parent::save_meta_values($post_id, $post);
 }