mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- added hooks for change a wp_um_metadata table
- added hooks for user_location fields (hooks for comparison in text fields)
This commit is contained in:
@@ -99,15 +99,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
|
||||
$metakeys = array();
|
||||
foreach ( UM()->builtin()->all_user_fields as $all_user_field ) {
|
||||
if ( $all_user_field['type'] == 'user_location' ) {
|
||||
$metakeys[] = $all_user_field['metakey'] . '_lat';
|
||||
$metakeys[] = $all_user_field['metakey'] . '_lng';
|
||||
$metakeys[] = $all_user_field['metakey'] . '_url';
|
||||
} else {
|
||||
$metakeys[] = $all_user_field['metakey'];
|
||||
}
|
||||
$metakeys[] = $all_user_field['metakey'];
|
||||
}
|
||||
|
||||
$metakeys = apply_filters( 'um_metadata_same_page_update_ajax', $metakeys, UM()->builtin()->all_user_fields );
|
||||
|
||||
if ( is_multisite() ) {
|
||||
|
||||
$sites = get_sites( array( 'fields' => 'ids' ) );
|
||||
|
||||
@@ -56,51 +56,25 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
function on_delete_custom_field( $metakey, $args ) {
|
||||
$metakeys = get_option( 'um_usermeta_fields', array() );
|
||||
|
||||
if ( $args['type'] == 'user_location' ) {
|
||||
if ( array_intersect( array( $metakey . '_lat', $metakey . '_lng', $metakey . '_url' ), $metakeys ) ) {
|
||||
if ( false !== $searched = array_search( $metakey . '_lat', $metakeys ) ) {
|
||||
unset( $metakeys[ $searched ] );
|
||||
}
|
||||
if ( false !== $searched = array_search( $metakey . '_lng', $metakeys ) ) {
|
||||
unset( $metakeys[ $searched ] );
|
||||
}
|
||||
if ( false !== $searched = array_search( $metakey . '_url', $metakeys ) ) {
|
||||
unset( $metakeys[ $searched ] );
|
||||
}
|
||||
if ( in_array( $metakey, $metakeys ) ) {
|
||||
unset( $metakeys[ array_search( $metakey, $metakeys ) ] );
|
||||
|
||||
global $wpdb;
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->query( $wpdb->prepare(
|
||||
"DELETE FROM {$wpdb->prefix}um_metadata
|
||||
WHERE um_key = %s OR
|
||||
um_key = %s OR
|
||||
um_key = %s",
|
||||
$metakey . '_lat',
|
||||
$metakey . '_lng',
|
||||
$metakey . '_url'
|
||||
) );
|
||||
$wpdb->delete(
|
||||
"{$wpdb->prefix}um_metadata",
|
||||
array(
|
||||
'um_key' => $metakey
|
||||
),
|
||||
array(
|
||||
'%s'
|
||||
)
|
||||
);
|
||||
|
||||
update_option( 'um_usermeta_fields', array_values( $metakeys ) );
|
||||
}
|
||||
} else {
|
||||
if ( in_array( $metakey, $metakeys ) ) {
|
||||
unset( $metakeys[ array_search( $metakey, $metakeys ) ] );
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->delete(
|
||||
"{$wpdb->prefix}um_metadata",
|
||||
array(
|
||||
'um_key' => $metakey
|
||||
),
|
||||
array(
|
||||
'%s'
|
||||
)
|
||||
);
|
||||
|
||||
update_option( 'um_usermeta_fields', array_values( $metakeys ) );
|
||||
}
|
||||
update_option( 'um_usermeta_fields', array_values( $metakeys ) );
|
||||
}
|
||||
|
||||
apply_filters( 'um_metadata_on_delete_custom_field', $metakeys, $metakey, $args );
|
||||
}
|
||||
|
||||
|
||||
@@ -113,32 +87,12 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
function on_new_field_added( $metakey, $args ) {
|
||||
$metakeys = get_option( 'um_usermeta_fields', array() );
|
||||
|
||||
if ( $args['type'] == 'user_location' ) {
|
||||
$update = false;
|
||||
if ( ! in_array( $metakey . '_lat', $metakeys ) ) {
|
||||
$update = true;
|
||||
$metakeys[] = $metakey . '_lat';
|
||||
}
|
||||
|
||||
if ( ! in_array( $metakey . '_lng', $metakeys ) ) {
|
||||
$update = true;
|
||||
$metakeys[] = $metakey . '_lng';
|
||||
}
|
||||
|
||||
if ( ! in_array( $metakey . '_url', $metakeys ) ) {
|
||||
$update = true;
|
||||
$metakeys[] = $metakey . '_url';
|
||||
}
|
||||
|
||||
if ( $update ) {
|
||||
update_option( 'um_usermeta_fields', array_values( $metakeys ) );
|
||||
}
|
||||
} else {
|
||||
if ( ! in_array( $metakey, $metakeys ) ) {
|
||||
$metakeys[] = $metakey;
|
||||
update_option( 'um_usermeta_fields', array_values( $metakeys ) );
|
||||
}
|
||||
if ( ! in_array( $metakey, $metakeys ) ) {
|
||||
$metakeys[] = $metakey;
|
||||
update_option( 'um_usermeta_fields', array_values( $metakeys ) );
|
||||
}
|
||||
|
||||
apply_filters( 'um_metadata_on_new_field_added', $metakeys, $metakey, $args );
|
||||
}
|
||||
|
||||
|
||||
@@ -291,7 +245,10 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
|
||||
$value = trim( stripslashes( $value ) );
|
||||
|
||||
$this->where_clauses[] = $wpdb->prepare( "{$join_slug}{$i}.um_key = %s AND {$join_slug}{$i}.um_value = %s", $field, $value );
|
||||
$compare = apply_filters( 'um_members_directory_filter_text', '=', $field );
|
||||
$value = apply_filters( 'um_members_directory_filter_text_meta_value', $value, $field );
|
||||
|
||||
$this->where_clauses[] = $wpdb->prepare( "{$join_slug}{$i}.um_key = %s AND {$join_slug}{$i}.um_value {$compare} %s", $field, $value );
|
||||
|
||||
if ( ! $is_default ) {
|
||||
$this->custom_filters_in_query[ $field ] = $value;
|
||||
|
||||
@@ -1596,13 +1596,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
case 'text':
|
||||
|
||||
$value = stripslashes( $value );
|
||||
|
||||
$field_query = array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => $field,
|
||||
'value' => trim( $value ),
|
||||
'compare' => 'LIKE',
|
||||
'compare' => apply_filters( 'um_members_directory_filter_text', '=', $field )
|
||||
),
|
||||
);
|
||||
|
||||
@@ -1871,7 +1870,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$field_query = array(
|
||||
'key' => $field,
|
||||
'value' => $value,
|
||||
'compare' => '=',
|
||||
'compare' => apply_filters( 'um_members_directory_filter_text', '=', $field ),
|
||||
);
|
||||
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user