Update user meta.
This commit is contained in:
parent
6be21cbbff
commit
b57e76d12f
@ -1,38 +1,32 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
if ( ! defined( 'ABSPATH' ) ) {
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
exit; // Exit if accessed directly
|
exit; // Exit if accessed directly
|
||||||
}
|
}
|
||||||
|
|
||||||
class Opalestate_Admin_Agency {
|
class Opalestate_Admin_Agency {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Opalestate_Admin_Agency constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(){
|
public function __construct() {
|
||||||
|
add_action( 'cmb2_admin_init', [ $this, 'metaboxes' ] );
|
||||||
add_action( 'cmb2_admin_init', array( $this, 'metaboxes' ) );
|
add_action( 'save_post', [ $this, 'on_save_post' ], 13, 2 );
|
||||||
add_action( 'save_post', array( $this , 'on_save_post'), 13, 2 );
|
add_action( 'user_register', [ $this, 'on_update_user' ], 10, 1 );
|
||||||
|
add_action( 'profile_update', [ $this, 'on_update_user' ], 10, 1 );
|
||||||
add_action( 'user_register' , array( $this, 'on_update_user' ), 10, 1 );
|
|
||||||
add_action( 'profile_update' , array( $this, 'on_update_user' ), 10, 1 );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update relationship post and user data, auto update meta information from post to user
|
* Update relationship post and user data, auto update meta information from post to user
|
||||||
*/
|
*/
|
||||||
public function on_save_post( $post_id ){
|
public function on_save_post( $post_id ) {
|
||||||
$post_type = get_post_type($post_id);
|
$post_type = get_post_type( $post_id );
|
||||||
if( $post_type == 'opalestate_agency' ){
|
if ( $post_type == 'opalestate_agency' ) {
|
||||||
if( isset($_POST[OPALESTATE_AGENCY_PREFIX.'user_id']) && $_POST[OPALESTATE_AGENCY_PREFIX.'user_id'] ){
|
if ( isset( $_POST[ OPALESTATE_AGENCY_PREFIX . 'user_id' ] ) && $_POST[ OPALESTATE_AGENCY_PREFIX . 'user_id' ] ) {
|
||||||
|
$user_id = absint( $_POST[ OPALESTATE_AGENCY_PREFIX . 'user_id' ] );
|
||||||
$user_id = absint( $_POST[OPALESTATE_AGENCY_PREFIX.'user_id'] );
|
|
||||||
update_user_meta( $user_id, OPALESTATE_USER_PROFILE_PREFIX . 'related_id', $post_id );
|
update_user_meta( $user_id, OPALESTATE_USER_PROFILE_PREFIX . 'related_id', $post_id );
|
||||||
|
OpalEstate_Agency::update_user_data( $user_id );
|
||||||
OpalEstate_Agency::update_user_data( $user_id );
|
|
||||||
// OpalEstate_Agency::update_properties_related( $user_id );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -41,14 +35,14 @@ class Opalestate_Admin_Agency {
|
|||||||
* Auto update meta information to post from user data updated or created
|
* Auto update meta information to post from user data updated or created
|
||||||
*/
|
*/
|
||||||
public function on_update_user() {
|
public function on_update_user() {
|
||||||
if( isset($_POST['user_id']) && (int) $_POST['user_id'] && isset($_POST['role']) ) {
|
if ( isset( $_POST['user_id'] ) && (int) $_POST['user_id'] && isset( $_POST['role'] ) ) {
|
||||||
if( $_POST['role'] == 'opalestate_agency' ){
|
if ( $_POST['role'] == 'opalestate_agency' ) {
|
||||||
$user_id = absint( $_POST['user_id'] );
|
$user_id = absint( $_POST['user_id'] );
|
||||||
|
static::update_user_metas( $user_id );
|
||||||
|
|
||||||
$related_id = get_user_meta( $user_id, OPALESTATE_USER_PROFILE_PREFIX . 'related_id', true );
|
$related_id = get_user_meta( $user_id, OPALESTATE_USER_PROFILE_PREFIX . 'related_id', true );
|
||||||
|
$post = get_post( $related_id );
|
||||||
$post = get_post( $related_id );
|
if ( isset( $post->ID ) && $post->ID ) {
|
||||||
|
|
||||||
if( isset($post->ID) && $post->ID ){
|
|
||||||
OpalEstate_Agency::update_data_from_user( $related_id );
|
OpalEstate_Agency::update_data_from_user( $related_id );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -56,101 +50,120 @@ class Opalestate_Admin_Agency {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Update some user metas.
|
||||||
*
|
*
|
||||||
|
* @param int $related_id Post ID.
|
||||||
*/
|
*/
|
||||||
public function metaboxes_fields( $prefix = '' ){
|
public static function update_user_metas( $user_id ) {
|
||||||
|
$terms = [
|
||||||
|
'location',
|
||||||
|
'state',
|
||||||
|
'city',
|
||||||
|
];
|
||||||
|
|
||||||
if ( ! $prefix ) {
|
foreach ( $terms as $term ) {
|
||||||
$prefix = OPALESTATE_AGENCY_PREFIX;
|
if ( isset( $_POST[ OPALESTATE_USER_PROFILE_PREFIX . $term ] ) ) {
|
||||||
|
update_user_meta( $user_id, OPALESTATE_USER_PROFILE_PREFIX . $term, $_POST[ OPALESTATE_USER_PROFILE_PREFIX . $term ] );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$fields = array(
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
array(
|
|
||||||
'name' => esc_html__('Gallery' ,'opalestate-pro'),
|
|
||||||
'desc' => esc_html__('Select one, to add new you create in location of estate panel','opalestate-pro'),
|
|
||||||
'id' => $prefix."gallery",
|
|
||||||
'type' => 'file_list',
|
|
||||||
) ,
|
|
||||||
|
|
||||||
array(
|
|
||||||
'name' => esc_html__( 'Slogan', 'opalestate-pro' ),
|
|
||||||
'id' => "{$prefix}slogan",
|
|
||||||
'type' => 'text'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
return apply_filters( 'opalestate_postype_agency_metaboxes_fields' , $fields );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function metaboxes( ){
|
public function metaboxes_fields( $prefix = '' ) {
|
||||||
|
|
||||||
|
if ( ! $prefix ) {
|
||||||
|
$prefix = OPALESTATE_AGENCY_PREFIX;
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields = [
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
'name' => esc_html__( 'Gallery', 'opalestate-pro' ),
|
||||||
|
'desc' => esc_html__( 'Select one, to add new you create in location of estate panel', 'opalestate-pro' ),
|
||||||
|
'id' => $prefix . "gallery",
|
||||||
|
'type' => 'file_list',
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'name' => esc_html__( 'Slogan', 'opalestate-pro' ),
|
||||||
|
'id' => "{$prefix}slogan",
|
||||||
|
'type' => 'text',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
return apply_filters( 'opalestate_postype_agency_metaboxes_fields', $fields );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function metaboxes() {
|
||||||
|
|
||||||
global $pagenow;
|
global $pagenow;
|
||||||
|
|
||||||
if( ($pagenow == 'post.php' || $pagenow == 'post-new.php') ) {
|
if ( ( $pagenow == 'post.php' || $pagenow == 'post-new.php' ) ) {
|
||||||
|
|
||||||
$prefix = OPALESTATE_AGENCY_PREFIX;
|
$prefix = OPALESTATE_AGENCY_PREFIX;
|
||||||
|
|
||||||
$metabox = new Opalestate_Agency_MetaBox();
|
$metabox = new Opalestate_Agency_MetaBox();
|
||||||
|
|
||||||
$fields = $this->metaboxes_fields();
|
$fields = $this->metaboxes_fields();
|
||||||
$fields = array_merge_recursive( $fields ,
|
$fields = array_merge_recursive( $fields,
|
||||||
$metabox->get_office_fields( $prefix ),
|
$metabox->get_office_fields( $prefix ),
|
||||||
$metabox->get_address_fields( $prefix )
|
$metabox->get_address_fields( $prefix )
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$box_options = array(
|
$box_options = [
|
||||||
'id' => $prefix . 'edit',
|
'id' => $prefix . 'edit',
|
||||||
'title' => esc_html__( 'Metabox', 'opalestate-pro' ),
|
'title' => esc_html__( 'Metabox', 'opalestate-pro' ),
|
||||||
'object_types' => array( 'opalestate_agency' ),
|
'object_types' => [ 'opalestate_agency' ],
|
||||||
'show_names' => true,
|
'show_names' => true,
|
||||||
);
|
];
|
||||||
|
|
||||||
// Setup meta box
|
// Setup meta box
|
||||||
$cmb = new_cmb2_box( $box_options );
|
$cmb = new_cmb2_box( $box_options );
|
||||||
|
|
||||||
// Setting tabs
|
// Setting tabs
|
||||||
$tabs_setting = array(
|
$tabs_setting = [
|
||||||
'config' => $box_options,
|
'config' => $box_options,
|
||||||
'layout' => 'vertical', // Default : horizontal
|
'layout' => 'vertical', // Default : horizontal
|
||||||
'tabs' => array()
|
'tabs' => [],
|
||||||
);
|
];
|
||||||
|
|
||||||
|
|
||||||
$tabs_setting['tabs'][] = array(
|
$tabs_setting['tabs'][] = [
|
||||||
'id' => 'p-general',
|
'id' => 'p-general',
|
||||||
'icon' => 'dashicons-admin-home',
|
'icon' => 'dashicons-admin-home',
|
||||||
'title' => esc_html__( 'General', 'opalestate-pro' ),
|
'title' => esc_html__( 'General', 'opalestate-pro' ),
|
||||||
'fields' => $fields
|
'fields' => $fields,
|
||||||
);
|
];
|
||||||
|
|
||||||
$tabs_setting['tabs'][] = array(
|
$tabs_setting['tabs'][] = [
|
||||||
'id' => 'p-socials',
|
'id' => 'p-socials',
|
||||||
'icon' => 'dashicons-share',
|
'icon' => 'dashicons-share',
|
||||||
'title' => esc_html__( 'Socials', 'opalestate-pro' ),
|
'title' => esc_html__( 'Socials', 'opalestate-pro' ),
|
||||||
'fields' => $metabox->get_social_fields( $prefix )
|
'fields' => $metabox->get_social_fields( $prefix ),
|
||||||
);
|
];
|
||||||
|
|
||||||
|
|
||||||
$tabs_setting['tabs'][] = array(
|
$tabs_setting['tabs'][] = [
|
||||||
'id' => 'p-target',
|
'id' => 'p-target',
|
||||||
'icon' => 'dashicons-admin-tools',
|
'icon' => 'dashicons-admin-tools',
|
||||||
'title' => esc_html__( 'Team', 'opalestate-pro' ),
|
'title' => esc_html__( 'Team', 'opalestate-pro' ),
|
||||||
'fields' => $metabox->metaboxes_target()
|
'fields' => $metabox->metaboxes_target(),
|
||||||
);
|
];
|
||||||
// Set tabs
|
// Set tabs
|
||||||
$cmb->add_field( array(
|
$cmb->add_field( [
|
||||||
'id' => '__tabs',
|
'id' => '__tabs',
|
||||||
'type' => 'tabs',
|
'type' => 'tabs',
|
||||||
'tabs' => $tabs_setting
|
'tabs' => $tabs_setting,
|
||||||
) );
|
] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
new Opalestate_Admin_Agency();
|
new Opalestate_Admin_Agency();
|
||||||
|
@ -61,11 +61,11 @@ class OpalEstate_Agency {
|
|||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
public function __construct( $post_id = null ) {
|
public function __construct( $post_id = null ) {
|
||||||
global $post ;
|
global $post;
|
||||||
|
|
||||||
if( $post == null ) {
|
if ( $post == null ) {
|
||||||
$post = WP_Post::get_instance( $post_id );
|
$post = WP_Post::get_instance( $post_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->post = $post;
|
$this->post = $post;
|
||||||
$this->post_id = $post_id ? $post_id : get_the_ID();
|
$this->post_id = $post_id ? $post_id : get_the_ID();
|
||||||
@ -114,12 +114,12 @@ class OpalEstate_Agency {
|
|||||||
/**
|
/**
|
||||||
* Get url of user avatar by agency id
|
* Get url of user avatar by agency id
|
||||||
*/
|
*/
|
||||||
public static function get_avatar_url( $userID, $size='thumbnail' ) {
|
public static function get_avatar_url( $userID, $size = 'thumbnail' ) {
|
||||||
|
|
||||||
$id = get_post_meta( $userID, OPALESTATE_AGENCY_PREFIX . 'avatar_id', true );
|
$id = get_post_meta( $userID, OPALESTATE_AGENCY_PREFIX . 'avatar_id', true );
|
||||||
$url = wp_get_attachment_image_url( $id, $size );
|
$url = wp_get_attachment_image_url( $id, $size );
|
||||||
|
|
||||||
if( $url ) {
|
if ( $url ) {
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,7 +239,7 @@ class OpalEstate_Agency {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = self::get_avatar_url( $agency_id );
|
$url = self::get_avatar_url( $agency_id );
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'name' => $agency->post_title,
|
'name' => $agency->post_title,
|
||||||
@ -313,7 +313,7 @@ class OpalEstate_Agency {
|
|||||||
* @param string $context What the value is for. Valid values are view and edit.
|
* @param string $context What the value is for. Valid values are view and edit.
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function get_category_tax ( ) {
|
public function get_category_tax() {
|
||||||
return wp_get_post_terms( $this->post_id, 'opalestate_agency_cat' );
|
return wp_get_post_terms( $this->post_id, 'opalestate_agency_cat' );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -330,7 +330,7 @@ class OpalEstate_Agency {
|
|||||||
/**
|
/**
|
||||||
* Update user data.
|
* Update user data.
|
||||||
*
|
*
|
||||||
* @param $user_id User ID.
|
* @param int $user_id User ID.
|
||||||
*/
|
*/
|
||||||
public static function update_user_data( $user_id ) {
|
public static function update_user_data( $user_id ) {
|
||||||
$fields = self::metaboxes_fields();
|
$fields = self::metaboxes_fields();
|
||||||
@ -349,7 +349,9 @@ class OpalEstate_Agency {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update for others
|
static::update_user_object_terms( $user_id );
|
||||||
|
|
||||||
|
// Update for others
|
||||||
foreach ( $others as $key => $value ) {
|
foreach ( $others as $key => $value ) {
|
||||||
$kpos = OPALESTATE_AGENCY_PREFIX . $key;
|
$kpos = OPALESTATE_AGENCY_PREFIX . $key;
|
||||||
if ( isset( $_POST[ $kpos ] ) ) {
|
if ( isset( $_POST[ $kpos ] ) ) {
|
||||||
@ -362,7 +364,7 @@ class OpalEstate_Agency {
|
|||||||
/**
|
/**
|
||||||
* Update data from user.
|
* Update data from user.
|
||||||
*
|
*
|
||||||
* @param $related_id Post ID
|
* @param int $related_id Post ID
|
||||||
*/
|
*/
|
||||||
public static function update_data_from_user( $related_id ) {
|
public static function update_data_from_user( $related_id ) {
|
||||||
$fields = self::metaboxes_fields();
|
$fields = self::metaboxes_fields();
|
||||||
@ -382,7 +384,9 @@ class OpalEstate_Agency {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update for others
|
static::update_post_object_terms( $related_id );
|
||||||
|
|
||||||
|
// Update for others.
|
||||||
foreach ( $others as $key => $value ) {
|
foreach ( $others as $key => $value ) {
|
||||||
$kpos = OPALESTATE_USER_PROFILE_PREFIX . $key;
|
$kpos = OPALESTATE_USER_PROFILE_PREFIX . $key;
|
||||||
if ( isset( $_POST[ $kpos ] ) ) {
|
if ( isset( $_POST[ $kpos ] ) ) {
|
||||||
@ -391,4 +395,42 @@ class OpalEstate_Agency {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update object terms.
|
||||||
|
*
|
||||||
|
* @param int $related_id Post ID.
|
||||||
|
*/
|
||||||
|
public static function update_user_object_terms( $user_id ) {
|
||||||
|
$terms = [
|
||||||
|
'location',
|
||||||
|
'state',
|
||||||
|
'city',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ( $terms as $term ) {
|
||||||
|
if ( isset( $_POST[ OPALESTATE_AGENCY_PREFIX . $term ] ) ) {
|
||||||
|
wp_set_object_terms( $user_id, $_POST[ OPALESTATE_AGENCY_PREFIX . $term ], 'opalestate_' . $term );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update object terms.
|
||||||
|
*
|
||||||
|
* @param int $related_id Post ID.
|
||||||
|
*/
|
||||||
|
public static function update_post_object_terms( $related_id ) {
|
||||||
|
$terms = [
|
||||||
|
'location',
|
||||||
|
'state',
|
||||||
|
'city',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ( $terms as $term ) {
|
||||||
|
if ( isset( $_POST[ OPALESTATE_USER_PROFILE_PREFIX . $term ] ) ) {
|
||||||
|
wp_set_object_terms( $related_id, $_POST[ OPALESTATE_USER_PROFILE_PREFIX . $term ], 'opalestate_' . $term );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -380,6 +380,8 @@ class Opalestate_User_Api extends Opalestate_Base_API {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->update_object_terms( $request['id'], $request );
|
||||||
|
|
||||||
// Update for others.
|
// Update for others.
|
||||||
foreach ( $others as $key => $value ) {
|
foreach ( $others as $key => $value ) {
|
||||||
$kpos = OPALESTATE_AGENCY_PREFIX . $key;
|
$kpos = OPALESTATE_AGENCY_PREFIX . $key;
|
||||||
|
Loading…
Reference in New Issue
Block a user