diff --git a/includes/admin/assets/css/um-admin-columns.css b/includes/admin/assets/css/um-admin-columns.css index 34b41462..25ff9e7a 100644 --- a/includes/admin/assets/css/um-admin-columns.css +++ b/includes/admin/assets/css/um-admin-columns.css @@ -13,6 +13,7 @@ .um-admin.post-type-um_directory .manage-column.column-id {width: 60px} .um-admin.post-type-um_directory .manage-column.column-title {width: 250px} +.um-admin.post-type-um_directory .manage-column.column-is_default {width: 60px} .um-admin.post-type-um_role .manage-column.column-title {width: 200px} .um-admin.post-type-um_role .manage-column.column-count {width: 150px} diff --git a/includes/admin/core/class-admin-columns.php b/includes/admin/core/class-admin-columns.php index 91644f75..c5d85ba0 100644 --- a/includes/admin/core/class-admin-columns.php +++ b/includes/admin/core/class-admin-columns.php @@ -112,6 +112,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { $new_columns['cb'] = ''; $new_columns['title'] = __( 'Title', 'ultimate-member' ); $new_columns['id'] = __( 'ID', 'ultimate-member' ); + $new_columns['is_default'] = __( 'Default', 'ulitmate-member' ); $new_columns['shortcode'] = __( 'Shortcode', 'ultimate-member' ); $new_columns['date'] = __( 'Date', 'ultimate-member' ); @@ -132,7 +133,14 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { break; case 'shortcode': - echo UM()->shortcodes()->get_shortcode( $id ); + $is_default = UM()->query()->get_attr( 'is_default', $id ); + + if ( $is_default ) { + echo UM()->shortcodes()->get_default_shortcode( $id ); + } else { + echo UM()->shortcodes()->get_shortcode( $id ); + } + break; case 'is_default': @@ -149,7 +157,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { /** - * Display cusom columns for Directory + * Display custom columns for Directory * * @param string $column_name * @param int $id @@ -160,7 +168,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { echo ''.$id.''; break; case 'shortcode': - echo UM()->shortcodes()->get_shortcode( $id ); + $is_default = UM()->query()->get_attr( 'is_default', $id ); + + if ( $is_default ) { + echo UM()->shortcodes()->get_default_shortcode( $id ); + } else { + echo UM()->shortcodes()->get_shortcode( $id ); + } + break; + case 'is_default': + $is_default = UM()->query()->get_attr( 'is_default', $id ); + echo empty( $is_default ) ? __( 'No', 'ultimate-member' ) : __( 'Yes', 'ultimate-member' ); break; } } diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php index 0474ebd3..5aabaee3 100644 --- a/includes/admin/core/class-admin-metabox.php +++ b/includes/admin/core/class-admin-metabox.php @@ -1087,6 +1087,21 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { $v = preg_split( '/[\r\n]+/', $v, -1, PREG_SPLIT_NO_EMPTY ); } if ( strstr( $k, '_um_' ) ) { + if ( $k === '_um_is_default' ) { + $mode = UM()->query()->get_attr( 'mode', $post_id ); + if ( ! empty( $mode ) ) { + $posts = $wpdb->get_col( + "SELECT post_id + FROM {$wpdb->postmeta} + WHERE meta_key = '_um_mode' AND + meta_value = 'directory'" + ); + foreach ( $posts as $p_id ) { + delete_post_meta( $p_id, '_um_is_default' ); + } + } + } + update_post_meta( $post_id, $k, $v ); } } @@ -1125,7 +1140,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { if ( $k === '_um_is_default' ) { $mode = UM()->query()->get_attr( 'mode', $post_id ); if ( ! empty( $mode ) ) { - $posts = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_um_mode' AND meta_value = %s", $mode ) ); + $posts = $wpdb->get_col( $wpdb->prepare( + "SELECT post_id + FROM {$wpdb->postmeta} + WHERE meta_key = '_um_mode' AND + meta_value = %s", + $mode + ) ); foreach ( $posts as $p_id ) { delete_post_meta( $p_id, '_um_is_default' ); } diff --git a/includes/admin/templates/directory/shortcode.php b/includes/admin/templates/directory/shortcode.php index 35124f74..f26a7139 100644 --- a/includes/admin/templates/directory/shortcode.php +++ b/includes/admin/templates/directory/shortcode.php @@ -1,3 +1,24 @@
+ admin_forms( array( + 'class' => 'um-member-directory-shortcode um-top-label', + 'prefix_id' => 'um_metadata', + 'fields' => array( + array( + 'id' => '_um_is_default', + 'type' => 'select', + 'label' => __( 'Default Member Directory', 'ultimate-member' ), + 'tooltip' => sprintf( __( 'If you set this member directory as default you will have an ability to use %s shortcode for the displaying directory at the page. Otherwise you will have to use %s', 'ultimate-member' ), UM()->shortcodes()->get_default_shortcode( get_the_ID() ), UM()->shortcodes()->get_shortcode( get_the_ID() ) ), + 'value' => UM()->query()->get_meta_value( '_um_is_default' ), + 'options' => array( + 0 => __( 'No', 'ultimate-member' ), + 1 => __( 'Yes', 'ultimate-member' ), + ), + ), + ) + ) )->render_form(); ?> + +
+

shortcodes()->get_shortcode( get_the_ID() ); ?>

+

shortcodes()->get_default_shortcode( get_the_ID() ); ?>

\ No newline at end of file diff --git a/includes/core/class-enqueue.php b/includes/core/class-enqueue.php index f8031bb0..80700341 100644 --- a/includes/core/class-enqueue.php +++ b/includes/core/class-enqueue.php @@ -71,6 +71,16 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { */ function wp_enqueue_scripts() { + $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false ); + + if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) { + wp_dequeue_style( 'select2' ); + wp_deregister_style( 'select2' ); + + wp_dequeue_script( 'select2'); + wp_deregister_script('select2'); + } + wp_register_script( 'um_scrollto', $this->js_baseurl . 'um-scrollto' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); wp_register_script( 'um_scrollbar', $this->js_baseurl . 'um-scrollbar' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); @@ -259,20 +269,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { */ function load_selectjs() { - $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false ); - - if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) { - wp_dequeue_style( 'select2' ); - wp_deregister_style( 'select2' ); - - wp_dequeue_script( 'select2'); - wp_deregister_script('select2'); - } - - wp_register_script('select2', um_url . 'assets/js/select2/select2.full.min.js', array('jquery', 'jquery-masonry') ); wp_enqueue_script('select2'); - - wp_register_style('select2', um_url . 'assets/css/select2/select2.min.css' ); wp_enqueue_style('select2'); } @@ -282,13 +279,8 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load Fonticons */ function load_fonticons(){ - - wp_register_style('um_fonticons_ii', um_url . 'assets/css/um-fonticons-ii.css' ); wp_enqueue_style('um_fonticons_ii'); - - wp_register_style('um_fonticons_fa', um_url . 'assets/css/um-fonticons-fa.css' ); wp_enqueue_style('um_fonticons_fa'); - } @@ -296,16 +288,9 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load fileupload JS */ function load_fileupload() { - - wp_register_script('um_jquery_form', um_url . 'assets/js/um-jquery-form' . $this->suffix . '.js' ); wp_enqueue_script('um_jquery_form'); - - wp_register_script('um_fileupload', um_url . 'assets/js/um-fileupload' . $this->suffix . '.js' ); wp_enqueue_script('um_fileupload'); - - wp_register_style('um_fileupload', um_url . 'assets/css/um-fileupload.css' ); wp_enqueue_style('um_fileupload'); - } @@ -374,28 +359,13 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load date & time picker */ function load_datetimepicker() { - - wp_register_script('um_datetime', um_url . 'assets/js/pickadate/picker.js' ); wp_enqueue_script('um_datetime'); - - wp_register_script('um_datetime_date', um_url . 'assets/js/pickadate/picker.date.js' ); wp_enqueue_script('um_datetime_date'); - - wp_register_script('um_datetime_time', um_url . 'assets/js/pickadate/picker.time.js' ); wp_enqueue_script('um_datetime_time'); - - wp_register_script('um_datetime_legacy', um_url . 'assets/js/pickadate/legacy.js' ); wp_enqueue_script('um_datetime_legacy'); - - wp_register_style('um_datetime', um_url . 'assets/css/pickadate/default.css' ); wp_enqueue_style('um_datetime'); - - wp_register_style('um_datetime_date', um_url . 'assets/css/pickadate/default.date.css' ); wp_enqueue_style('um_datetime_date'); - - wp_register_style('um_datetime_time', um_url . 'assets/css/pickadate/default.time.css' ); wp_enqueue_style('um_datetime_time'); - } @@ -403,10 +373,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load scrollto */ function load_scrollto(){ - - wp_register_script('um_scrollto', um_url . 'assets/js/um-scrollto' . $this->suffix . '.js' ); wp_enqueue_script('um_scrollto'); - } @@ -414,13 +381,8 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load scrollbar */ function load_scrollbar(){ - - wp_register_script('um_scrollbar', um_url . 'assets/js/um-scrollbar' . $this->suffix . '.js' ); wp_enqueue_script('um_scrollbar'); - - wp_register_style('um_scrollbar', um_url . 'assets/css/um-scrollbar.css' ); wp_enqueue_style('um_scrollbar'); - } @@ -428,10 +390,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load rating */ function load_raty() { - wp_register_script('um_raty', um_url . 'assets/js/um-raty' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); wp_enqueue_script('um_raty'); - - wp_register_style('um_raty', um_url . 'assets/css/um-raty.css', array(), ultimatemember_version ); wp_enqueue_style('um_raty'); } @@ -440,13 +399,8 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load crop script */ function load_imagecrop(){ - - wp_register_script('um_crop', um_url . 'assets/js/um-crop' . $this->suffix . '.js' ); wp_enqueue_script('um_crop'); - - wp_register_style('um_crop', um_url . 'assets/css/um-crop.css' ); wp_enqueue_style('um_crop'); - } @@ -454,13 +408,8 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { * Load tipsy */ function load_tipsy(){ - - wp_register_script('um_tipsy', um_url . 'assets/js/um-tipsy' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); wp_enqueue_script('um_tipsy'); - - wp_register_style('um_tipsy', um_url . 'assets/css/um-tipsy.css', array(), ultimatemember_version ); wp_enqueue_style('um_tipsy'); - } diff --git a/includes/core/class-shortcodes.php b/includes/core/class-shortcodes.php index ac667267..6df7c214 100644 --- a/includes/core/class-shortcodes.php +++ b/includes/core/class-shortcodes.php @@ -492,6 +492,36 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { } + /** + * @param array $args + * + * @return string + */ + function ultimatemember_directory( $args = array() ) { + global $wpdb; + + $args = ! empty( $args ) ? $args : array(); + + $default_directory = $wpdb->get_var( + "SELECT pm.post_id + FROM {$wpdb->postmeta} pm + LEFT JOIN {$wpdb->postmeta} pm2 ON( pm.post_id = pm2.post_id AND pm2.meta_key = '_um_is_default' ) + WHERE pm.meta_key = '_um_mode' AND + pm.meta_value = 'directory' AND + pm2.meta_value = '1'" + ); + + $args['form_id'] = $default_directory; + + $shortcode_attrs = ''; + foreach ( $args as $key => $value ) { + $shortcode_attrs .= " {$key}=\"{$value}\""; + } + + return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" ); + } + + /** * Shortcode * @@ -937,6 +967,9 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { case 'register': $shortcode = '[ultimatemember_register]'; break; + case 'directory': + $shortcode = '[ultimatemember_directory]'; + break; } return $shortcode;