/** * Save content in wp_option table. * * Update WP cache and instance singleton. * * @since 1.0.0 */ public function save() { $this->before_save(); $option_key = $this->option_key(); $settings = MS_Factory::serialize_model($this); MS_Factory::update_option($option_key, $settings); $this->instance = $this; $this->after_save(); wp_cache_set($option_key, $this, 'MS_Model_Option'); }
/** * Save content in wp_option table. * * Update WP cache and instance singleton. * * @since 1.0.0 */ public function save() { $this->before_save(); $option_key = $this->option_key(); $settings = array(); $data = MS_Factory::serialize_model($this); foreach ($data as $field => $val) { $settings[$field] = $this->{$field}; } MS_Factory::set_transient($option_key, $settings, DAY_IN_SECONDS); $this->after_save(); wp_cache_set($option_key, $this, 'MS_Model_Transient'); }
/** * Save member. * * Create a new user is id is empty. * Save member fields to wp_user and wp_usermeta tables. * Set cache for further use in MS_Factory::load. * The usermeta are prefixed with 'ms_'. * * @since 1.0.0 * @api * * @return MS_Model_Member The saved member object. */ public function save() { $class = get_class($this); /** * Tell WordPress core that we do NOT want to trigger the * Password-Reset email while updating the user now. * New since WordPress 4.3.0 * * @since 1.0.2.2 */ add_filter('send_password_change_email', '__return_false'); if (empty($this->id)) { $this->create_new_user(); } if (isset($this->username)) { $wp_user = new stdClass(); $wp_user->ID = $this->id; $wp_user->nickname = $this->username; $wp_user->user_nicename = $this->username; $wp_user->first_name = $this->first_name; $wp_user->last_name = $this->last_name; $wp_user->user_email = $this->email; if (!empty($this->password) && $this->password == $this->password2) { $wp_user->user_pass = $this->password; } wp_update_user(get_object_vars($wp_user)); } // Serialize our plugin meta data $data = MS_Factory::serialize_model($this); // Then update all meta fields that are inside the collection foreach ($data as $field => $val) { update_user_meta($this->id, 'ms_' . $field, $val); } wp_cache_set($this->id, $this, $class); // Remove our "mute-password-reset-email" trigger again. remove_filter('send_password_change_email', '__return_false'); return apply_filters('ms_model_member_save', $this); }
/** * Save member. * * Create a new user is id is empty. * Save member fields to wp_user and wp_usermeta tables. * Set cache for further use in MS_Factory::load. * The usermeta are prefixed with 'ms_'. * * @since 1.0.0 * @api * * @return MS_Model_Member The saved member object. */ public function save() { $class = get_class($this); if (empty($this->id)) { $this->create_new_user(); } if (isset($this->username)) { $wp_user = new stdClass(); $wp_user->ID = $this->id; $wp_user->nickname = $this->username; $wp_user->user_nicename = $this->username; $wp_user->first_name = $this->first_name; $wp_user->last_name = $this->last_name; if (!empty($this->password) && $this->password == $this->password2) { $wp_user->user_pass = $this->password; } wp_update_user(get_object_vars($wp_user)); } // Serialize our plugin meta data $data = MS_Factory::serialize_model($this); // Then update all meta fields that are inside the collection foreach ($data as $field => $val) { update_user_meta($this->id, 'ms_' . $field, $val); } wp_cache_set($this->id, $this, $class); return apply_filters('ms_model_member_save', $this); }
/** * Save content in wp tables (wp_post and wp_postmeta). * * Update WP cache. * * @since 1.0.0 */ public function save() { MS_Factory::select_blog(); $this->before_save(); $this->post_modified = gmdate('Y-m-d H:i:s'); $class = get_class($this); /* * Serialize data that is later saved to the postmeta table. * * While data is serialized it can also modify the model data before * writing it to the posts table. */ $data = MS_Factory::serialize_model($this); $post = array('comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => $this->user_id, 'post_content' => $this->description, 'post_excerpt' => $this->description, 'post_name' => sanitize_text_field($this->name), 'post_status' => 'private', 'post_title' => sanitize_title(!empty($this->title) ? $this->title : $this->name), 'post_type' => $this->get_post_type(), 'post_modified' => $this->post_modified); /** * Give child classes an easy way to modify the post and meta data right * before it is saved. * * @since 1.0.1.0 */ $post = $this->save_post_data($post); $data = $this->save_meta_data($data); if (empty($this->id)) { $this->id = wp_insert_post($post); } else { $post['ID'] = $this->id; wp_update_post($post); } // We first remove any metadata of our custom post type that is not // contained in the serialized data collection. $this->clean_metadata(array_keys($data)); // Then we update all meta fields that are inside the collection foreach ($data as $field => $val) { update_post_meta($this->id, $field, $val); } wp_cache_set($this->id, $this, $class); $this->after_save(); MS_Factory::revert_blog(); global $wp_current_filter; if (!in_array('ms_saved_' . $class, $wp_current_filter)) { /** * Action triggered after a custom post type model was saved to * database. * * @since 1.0.0 */ do_action('ms_saved_' . $class, $this); } }