locations = (array) $locations; // Hooks $this->addHooks(); // Do do_action('cuztom_user_init', $this); } /** * Add hooks. */ public function addHooks() { if (isset($this->callback[0]) && $this->callback[0] == $this) { add_action('personal_options_update', array($this, 'saveUser')); add_action('edit_user_profile_update', array($this, 'saveUser')); add_action('user_edit_form_tag', array($this, 'editFormTag')); } // Add forms to locations foreach ($this->locations as $location) { add_action($location, $this->callback); } // Do do_action('cuztom_user_hooks', $this); } /** * Callback for user meta, adds a title. * * @return void */ public function output() { echo '

'.$this->title.'

'; parent::output(); } /** * Hooks into the save hook for the user meta. * * @param int $id */ public function saveUser($id) { if (! Guard::verifyNonce('cuztom_nonce', 'cuztom_meta')) { return; } // Filter $values = apply_filters('cuztom_user_save_values', (new Request($_POST))->getAll(), $this); // Do do_action('cuztom_user_save', $this); parent::save($id, $values); } /** * Get object ID. * * @return int|null */ public function determineObject() { if (isset($_REQUEST['user_id'])) { return $_REQUEST['user_id']; } if (! isset($_POST['cuztom']['object'])) { return get_current_user_id(); } if ($_POST['cuztom']['object']) { return $_POST['cuztom']['object']; } } /** * Get value bases on field id. * * @return mixed */ public function getMetaValues() { return apply_filters('cuztom_user_values', get_user_meta($this->object), $this); } }