diff --git a/includes/admin/assets/css/um-admin-columns.css b/includes/admin/assets/css/um-admin-columns.css index 5f8730dc..34b41462 100644 --- a/includes/admin/assets/css/um-admin-columns.css +++ b/includes/admin/assets/css/um-admin-columns.css @@ -5,6 +5,7 @@ .um-admin.post-type-um_form .manage-column.column-id {width: 60px} .um-admin.post-type-um_form .manage-column.column-mode {width: 100px} +.um-admin.post-type-um_form .manage-column.column-is_default {width: 60px} .um-admin.post-type-um_form .manage-column.column-title {width: 200px} .um-admin.post-type-um_form .manage-column.column-shortcode {width: 200px} .um-admin.post-type-um_form .manage-column.column-impressions {width: 100px} diff --git a/includes/admin/core/class-admin-columns.php b/includes/admin/core/class-admin-columns.php index 6d83e024..91644f75 100644 --- a/includes/admin/core/class-admin-columns.php +++ b/includes/admin/core/class-admin-columns.php @@ -90,11 +90,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { */ function manage_edit_um_form_columns( $columns ) { $new_columns['cb'] = ''; - $new_columns['title'] = __( 'Title', 'ulitmatemember' ); - $new_columns['id'] = __('ID', 'ulitmatemember' ); - $new_columns['mode'] = __( 'Type', 'ulitmatemember' ); - $new_columns['shortcode'] = __( 'Shortcode', 'ulitmatemember' ); - $new_columns['date'] = __( 'Date', 'ulitmatemember' ); + $new_columns['title'] = __( 'Title', 'ulitmate-member' ); + $new_columns['id'] = __('ID', 'ulitmate-member' ); + $new_columns['mode'] = __( 'Type', 'ulitmate-member' ); + $new_columns['is_default'] = __( 'Default', 'ulitmate-member' ); + $new_columns['shortcode'] = __( 'Shortcode', 'ulitmate-member' ); + $new_columns['date'] = __( 'Date', 'ulitmate-member' ); return $new_columns; } @@ -134,6 +135,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Columns' ) ) { 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; + case 'mode': $mode = UM()->query()->get_attr( 'mode', $id ); echo UM()->form()->display_form_type( $mode, $id ); diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php index 86171059..0474ebd3 100644 --- a/includes/admin/core/class-admin-metabox.php +++ b/includes/admin/core/class-admin-metabox.php @@ -1121,8 +1121,18 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) { // save delete_post_meta( $post_id, '_um_profile_metafields' ); foreach ( $_POST['form'] as $k => $v ) { - if ( strstr( $k, '_um_' ) ){ - update_post_meta( $post_id, $k, $v); + if ( strstr( $k, '_um_' ) ) { + 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 ) ); + foreach ( $posts as $p_id ) { + delete_post_meta( $p_id, '_um_is_default' ); + } + } + } + + update_post_meta( $post_id, $k, $v ); } } diff --git a/includes/admin/core/class-admin-notices.php b/includes/admin/core/class-admin-notices.php index 24850135..05a032b6 100644 --- a/includes/admin/core/class-admin-notices.php +++ b/includes/admin/core/class-admin-notices.php @@ -298,11 +298,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { ob_start(); ?>
- %s > Settings to re-assign your missing pages.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_plugin_name ); ?> +
@@ -531,7 +531,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) { ob_start(); ?>- %s! We hope you like the plugin. To fund full-time development and support of the plugin we also sell extensions. If you subscribe to our mailing list we will send you a 20%% discount code for our extensions bundle.', 'ultimate-member' ), ultimatemember_plugin_name, 'https://ultimatemember.com/core-extensions-bundle/' ); ?> + %s! We hope you like the plugin. To fund full-time development and support of the plugin we also sell extensions. If you subscribe to our mailing list we will send you a 20%% discount code for our extensions bundle.', 'ultimate-member' ), ultimatemember_plugin_name, 'https://ultimatemember.com/core-extensions-bundle/' ); ?>
diff --git a/includes/admin/templates/form/shortcode.php b/includes/admin/templates/form/shortcode.php index 35124f74..fd71748c 100644 --- a/includes/admin/templates/form/shortcode.php +++ b/includes/admin/templates/form/shortcode.php @@ -1,3 +1,24 @@
\ No newline at end of file diff --git a/includes/core/class-shortcodes.php b/includes/core/class-shortcodes.php index 6457dfe0..ac667267 100644 --- a/includes/core/class-shortcodes.php +++ b/includes/core/class-shortcodes.php @@ -26,6 +26,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { add_shortcode( 'ultimatemember', array( &$this, 'ultimatemember' ) ); + add_shortcode( 'ultimatemember_login', array( &$this, 'ultimatemember_login' ) ); + add_shortcode( 'ultimatemember_register', array( &$this, 'ultimatemember_register' ) ); + add_shortcode( 'ultimatemember_profile', array( &$this, 'ultimatemember_profile' ) ); + add_shortcode( 'ultimatemember_directory', array( &$this, 'ultimatemember_directory' ) ); + add_shortcode( 'um_loggedin', array( &$this, 'um_loggedin' ) ); add_shortcode( 'um_loggedout', array( &$this, 'um_loggedout' ) ); add_shortcode( 'um_show_content', array( &$this, 'um_shortcode_show_content_for_role' ) ); @@ -375,8 +380,14 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { return $output; } - /*** - *** @Logged-out only content + + /** + * Logged-out only content + * + * @param array $args + * @param string $content + * + * @return string */ function um_loggedout($args = array(), $content = "") { ob_start(); @@ -393,6 +404,94 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { } + /** + * @param array $args + * + * @return string + */ + function ultimatemember_login( $args = array() ) { + global $wpdb; + + $args = ! empty( $args ) ? $args : array(); + + $default_login = $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 = 'login' AND + pm2.meta_value = '1'" + ); + + $args['form_id'] = $default_login; + $shortcode_attrs = ''; + foreach ( $args as $key => $value ) { + $shortcode_attrs .= " {$key}=\"{$value}\""; + } + + return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" ); + } + + + /** + * @param array $args + * + * @return string + */ + function ultimatemember_register( $args = array() ) { + global $wpdb; + + $args = ! empty( $args ) ? $args : array(); + + $default_register = $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 = 'register' AND + pm2.meta_value = '1'" + ); + + $args['form_id'] = $default_register; + $shortcode_attrs = ''; + foreach ( $args as $key => $value ) { + $shortcode_attrs .= " {$key}=\"{$value}\""; + } + + return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" ); + } + + + /** + * @param array $args + * + * @return string + */ + function ultimatemember_profile( $args = array() ) { + global $wpdb; + + $args = ! empty( $args ) ? $args : array(); + + $default_profile = $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 = 'profile' AND + pm2.meta_value = '1'" + ); + + $args['form_id'] = $default_profile; + + $shortcode_attrs = ''; + foreach ( $args as $key => $value ) { + $shortcode_attrs .= " {$key}=\"{$value}\""; + } + + return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" ); + } + + /** * Shortcode * @@ -813,7 +912,33 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { * @return string */ function get_shortcode( $post_id ) { - $shortcode = '[ultimatemember form_id=' . $post_id . ']'; + $shortcode = '[ultimatemember form_id="' . $post_id . '"]'; + return $shortcode; + } + + + /** + * Get Shortcode for given form ID + * + * @param $post_id + * + * @return string + */ + function get_default_shortcode( $post_id ) { + $mode = UM()->query()->get_attr( 'mode', $post_id ); + + switch ( $mode ) { + case 'login': + $shortcode = '[ultimatemember_login]'; + break; + case 'profile': + $shortcode = '[ultimatemember_profile]'; + break; + case 'register': + $shortcode = '[ultimatemember_register]'; + break; + } + return $shortcode; } diff --git a/templates/message.php b/templates/message.php index e0ee773e..2b9bb7bd 100644 --- a/templates/message.php +++ b/templates/message.php @@ -2,7 +2,7 @@ diff --git a/templates/profile.php b/templates/profile.php index 82129b90..8694ce19 100644 --- a/templates/profile.php +++ b/templates/profile.php @@ -192,6 +192,9 @@ if ( um_is_on_edit_profile() ) { ?> - + \ No newline at end of file