This commit is contained in:
Yurii Nalivaiko
2018-11-30 11:33:15 +02:00
31 changed files with 387 additions and 291 deletions
-19
View File
@@ -20,7 +20,6 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
function __construct() {
// UM_EVENT => nopriv
$ajax_actions = array(
'router' => false
);
foreach ( $ajax_actions as $action => $nopriv ) {
@@ -54,24 +53,6 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
add_action( 'wp_ajax_nopriv_um_resize_image', array( UM()->files(), 'ajax_resize_image' ) );
add_action( 'wp_ajax_um_resize_image', array( UM()->files(), 'ajax_resize_image' ) );
/**
* Fallback for ajax urls
* @uses action hooks: wp_head, admin_head
*/
//add_action( 'wp_head', array( $this, 'ultimatemember_ajax_urls' ) );
//add_action( 'admin_head', array( $this, 'ultimatemember_ajax_urls' ) );
}
/**
* Router method
*/
function router() {
$router = new Router();
$router->backend_requests();
}
}
}
-29
View File
@@ -18,8 +18,6 @@ if ( ! class_exists( 'um\core\Common' ) ) {
function __construct() {
add_action( 'init', array( &$this, 'create_post_types' ), 1 );
add_filter( 'posts_request', array( &$this, 'um_query_pages' ) );
add_filter( 'body_class', array( &$this, 'remove_admin_bar' ), 1000, 1 );
}
@@ -110,33 +108,6 @@ if ( ! class_exists( 'um\core\Common' ) ) {
}
}
/**
* Check query string on 'posts_request' for our pages
*
* @param string $q
*
* @return string
*/
public function um_query_pages( $q ) {
global $wp_query;
//We need main query
if ( isset( $wp_query->request ) && $q == $wp_query->request ) {
if ( ! empty( $wp_query->query_vars['um_page'] ) ) {
if ( 'api' == $wp_query->query_vars['um_page'] ) {
$router = new Router();
$router->frontend_requests();
}
}
}
return $q;
}
}
}
@@ -32,10 +32,46 @@ if ( ! class_exists( 'um\core\External_Integrations' ) ) {
add_filter( 'um_localize_permalink_filter', array( &$this, 'um_localize_permalink_filter' ), 10, 2 );
add_filter( 'icl_ls_languages', array( &$this, 'um_core_page_wpml_permalink' ), 10, 1 );
/**
* @todo Customize this form metadata
*/
//add_filter( 'um_pre_args_setup', array( &$this, 'shortcode_pre_args_setup' ), 20, 1 );
$this->plugins_loaded();
}
/**
* UM filter - Restore original arguments on translated page
*
* @description Restore original arguments on load shortcode if they are missed in the WPML translation
* @hook um_pre_args_setup
*
* @global \SitePress $sitepress
* @param array $args
* @return array
*/
function shortcode_pre_args_setup( $args ) {
if ( UM()->external_integrations()->is_wpml_active() ) {
global $sitepress;
$original_form_id = $sitepress->get_object_id( $args['form_id'], 'post', true, $sitepress->get_default_language() );
if ( $original_form_id != $args['form_id'] ) {
$original_post_data = UM()->query()->post_data( $original_form_id );
foreach ( $original_post_data as $key => $value ) {
if ( ! isset( $args[ $key ] ) ) {
$args[ $key ] = $value;
}
}
}
}
return $args;
}
/**
* Gravity forms role capabilities compatibility
*/
+4 -1
View File
@@ -481,8 +481,11 @@ if ( ! class_exists( 'um\core\Form' ) ) {
$global_role = $um_global_role; // Form Global settings
}
$mode = $this->form_type( $post_id );
/**
* @todo WPML integration to get role from original if it's empty
*/
$use_custom = get_post_meta( $post_id, "_um_{$mode}_use_custom_settings", true );
if ( $use_custom ) { // Custom Form settings
$role = get_post_meta( $post_id, "_um_{$mode}_role", true );
-3
View File
@@ -46,8 +46,6 @@ if ( ! class_exists( 'um\core\Rewrite' ) ) {
$public_query_vars[] = 'um_action';
$public_query_vars[] = 'um_field';
$public_query_vars[] = 'um_form';
$public_query_vars[] = 'um_resource';
$public_query_vars[] = 'um_method';
$public_query_vars[] = 'um_verify';
return $public_query_vars;
@@ -64,7 +62,6 @@ if ( ! class_exists( 'um\core\Rewrite' ) ) {
function _add_rewrite_rules( $rules ) {
$newrules = array();
$newrules['um-api/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$'] = 'index.php?um_page=api&um_action=$matches[1]&um_resource=$matches[2]&um_method=$matches[3]&um_verify=$matches[4]';
$newrules['um-download/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$'] = 'index.php?um_action=download&um_form=$matches[1]&um_field=$matches[2]&um_user=$matches[3]&um_verify=$matches[4]';
if ( isset( UM()->config()->permalinks['user'] ) ) {
-115
View File
@@ -1,115 +0,0 @@
<?php
namespace um\core;
if ( ! defined( 'ABSPATH' ) ) exit;
if ( ! class_exists( 'um\core\Router' ) ) {
/**
* Class Router
* @package um\core
*/
class Router {
/**
* Run backend process
*/
function backend_requests() {
$ip = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : '';
$user_id = get_current_user_id();
if ( empty( $_REQUEST['um_action'] ) )
exit( __( 'Wrong action', 'ultimate-member' ) );
if ( empty( $_REQUEST['um_resource'] ) )
exit( __( 'Wrong resource', 'ultimate-member' ) );
if ( $_REQUEST['um_action'] == 'route' )
$verify = wp_verify_nonce( $_REQUEST['um_verify'], $ip . $user_id . $_REQUEST['um_resource'] . $_REQUEST['um_method'] );
else
$verify = wp_verify_nonce( $_REQUEST['um_verify'], $ip . $user_id . $_REQUEST['um_action'] . $_REQUEST['um_resource'] );
if ( empty( $verify ) )
exit( __( 'Wrong nonce', 'ultimate-member' ) );
$this->request_process( array(
'route' => $_REQUEST['um_resource'],
'method' => $_REQUEST['um_method']
) );
/*if ($_REQUEST['um_action'] == 'download' || $_REQUEST['um_action'] == 'view') {
WO()->downloader()->set_type( $_REQUEST['um_action'] )->process( array(
'id' => $_REQUEST['um_id'],
'resource' => $_REQUEST['um_resource'],
'action' => $_REQUEST['um_action']
) );
} else if ($_REQUEST['um_action'] == 'route') {
$this->request_process( array(
'route' => $_REQUEST['um_resource'],
'method' => $_REQUEST['um_method']
) );
}*/
}
/**
* Request process
*
* @param $params array
* @return bool
*/
function request_process( $params ) {
if ( empty( $params['route'] ) || empty( $params['method'] ) )
return false;
$route = str_replace( array( '!', '/' ), '\\', $params['route'] );
if ( ! class_exists( $route ) )
return false;
if ( method_exists( $route, 'instance' ) )
$object = $route::instance();
else
$object = new $route();
if ( ! method_exists( $object, $params['method'] ) )
return false;
call_user_func( array( &$object, $params['method'] ) );
return true;
}
/**
* Run frontend process
*/
function frontend_requests() {
$ip = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : '';
$user_id = get_current_user_id();
if ( ! get_query_var( 'um_action' ) )
exit( __( 'Wrong action', 'ultimate-member' ) );
if ( ! get_query_var( 'um_resource' ) )
exit( __( 'Wrong resource', 'ultimate-member' ) );
$verify = false;
if ( get_query_var( 'um_action' ) == 'route' )
$verify = wp_verify_nonce( get_query_var( 'um_verify' ), $ip . $user_id . get_query_var( 'um_resource' ) . get_query_var( 'um_method' ) );
if ( $verify ) {
if ( get_query_var( 'um_action' ) == 'route' ) {
$this->request_process( array(
'route' => get_query_var( 'um_resource' ),
'method' => get_query_var( 'um_method' )
) );
}
} else {
exit( __( 'Wrong nonce', 'ultimate-member' ) );
}
}
}
}
+7 -9
View File
@@ -558,7 +558,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
}
// get data into one global array
$post_data = UM()->query()->post_data($this->form_id);
$post_data = UM()->query()->post_data( $this->form_id );
ob_start();
@@ -589,23 +589,22 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
$args['template'] = '';
}
if (isset($post_data['template']) && $post_data['template'] != $args['template']) {
if ( isset( $post_data['template'] ) && $post_data['template'] != $args['template'] ) {
$args['template'] = $post_data['template'];
}
if (!$this->template_exists($args['template'])) {
if ( ! $this->template_exists( $args['template'] ) ) {
$args['template'] = $post_data['mode'];
}
if (!isset($post_data['template'])) {
if ( ! isset( $post_data['template'] ) ) {
$post_data['template'] = $post_data['mode'];
}
if( 'directory' != $args['mode'] ) {
if ( 'directory' != $args['mode'] ) {
$args = array_merge( $post_data, $args );
if (empty( $args['use_custom_settings'] )) {
if ( empty( $args['use_custom_settings'] ) ) {
$args = array_merge( $args, $this->get_css_args( $args ) );
} else {
$args = array_merge( $this->get_css_args( $args ), $args );
@@ -648,8 +647,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
// for profiles only
if ( $mode == 'profile' && um_profile_id() ) {
$use_custom = get_post_meta( $this->form_id, "_um_{$mode}_use_custom_settings", true );
if ( $use_custom ) { // Custom Form settings
if ( ! empty( $args['use_custom_settings'] ) ) { // Custom Form settings
$current_user_roles = UM()->roles()->get_all_user_roles( um_profile_id() );
//backward compatibility between single/multi role form's setting
+1 -1
View File
@@ -1540,7 +1540,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
*/
function is_private_profile( $user_id ) {
$privacy = get_user_meta( $user_id, 'profile_privacy', true );
if ( $privacy == __('Only me','ultimate-member') ) {
if ( $privacy == __('Only me','ultimate-member') || $privacy == 'Only me' ) {
return true;
}
return false;
-45
View File
@@ -452,51 +452,6 @@ function um_submit_form_register( $args ) {
add_action( 'um_submit_form_register', 'um_submit_form_register', 10 );
/**
* Register user with predefined role in options
*
* @param $args
*/
function um_add_user_role( $args ) {
if ( isset( $args['custom_fields']['role_select'] ) || isset( $args['custom_fields']['role_radio'] ) ) return;
$use_custom_settings = get_post_meta( $args['form_id'], '_um_register_use_custom_settings', true );
$role = apply_filters( 'um_registration_user_role', UM()->form()->assigned_role( UM()->form()->form_id ), $args );
if ( empty( $use_custom_settings ) || empty( $role ) ) return;
/**
* UM hook
*
* @type filter
* @title um_register_hidden_role_field
* @description Display hidden role field
* @input_vars
* [{"var":"$role","type":"string","desc":"Hidden user role"}]
* @change_log
* ["Since: 2.0"]
* @usage
* <?php add_filter( 'um_register_hidden_role_field', 'function_name', 10, 1 ); ?>
* @example
* <?php
* add_filter( 'um_register_hidden_role_field', 'my_register_hidden_role_field', 10, 1 );
* function my_register_hidden_role_field( $role ) {
* // your code here
* return $role;
* }
* ?>
*/
$role = apply_filters( 'um_register_hidden_role_field', $role );
if ( $role ) {
echo '<input type="hidden" name="role" id="role" value="' . $role . '" />';
}
}
//add_action( 'um_after_register_fields', 'um_add_user_role', 10, 1 );
/**
* Show the submit button
*
+1 -1
View File
@@ -207,7 +207,7 @@ function um_profile_field_filter_hook__date( $value, $data ) {
if ( $data['pretty_format'] == 1 ) {
$value = UM()->datetime()->get_age( $value );
} else {
$value = UM()->datetime()->format( $value, $data['format'] );
$value = date_i18n( $data['format'], strtotime( $value ) );
}
return $value;
+10 -10
View File
@@ -42,25 +42,25 @@ add_filter('pre_get_document_title', 'um_dynamic_user_profile_pagetitle', 100000
* @return string
*/
function um_dynamic_user_profile_title( $title, $id = '' ) {
if( is_admin() ){
if ( is_admin() ) {
return $title;
}
if ( $id == UM()->config()->permalinks['user'] && in_the_loop() ) {
if ( um_is_core_page('user') && um_get_requested_user() ) {
$title = um_get_display_name( um_get_requested_user() );
} else if ( um_is_core_page('user') && is_user_logged_in() ) {
$title = um_get_display_name( get_current_user_id() );
if ( um_is_core_page('user') ) {
if ( $id == UM()->config()->permalinks['user'] && in_the_loop() ) {
if ( um_get_requested_user() ) {
$title = um_get_display_name( um_get_requested_user() );
} elseif ( is_user_logged_in() ) {
$title = um_get_display_name( get_current_user_id() );
}
}
}
if( ! function_exists('utf8_decode') ){
if ( ! function_exists( 'utf8_decode' ) ) {
return $title;
}
return (strlen($title)!==strlen(utf8_decode($title))) ? $title : utf8_encode($title);
return ( strlen( $title ) !== strlen( utf8_decode( $title ) ) ) ? $title : utf8_encode( $title );
}
add_filter( 'the_title', 'um_dynamic_user_profile_title', 100000, 2 );