diff --git a/assets/js/um-blocks.js b/assets/js/um-blocks.js new file mode 100644 index 00000000..e69de29b diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php index bf7b9b69..c173d1f3 100644 --- a/includes/admin/core/class-admin-enqueue.php +++ b/includes/admin/core/class-admin-enqueue.php @@ -104,6 +104,46 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { wp_register_style( 'um_members_rtl', um_url . '/assets/css/um-members-rtl.css', array( 'um_members' ), ultimatemember_version ); } wp_register_style( 'um_styles', um_url . '/assets/css/um-styles.css', array(), ultimatemember_version ); + wp_register_style( 'um_profile', um_url . '/assets/css/um-profile.css', array(), ultimatemember_version ); + wp_register_style( 'um_crop', um_url . '/assets/css/um-crop.css', array(), ultimatemember_version ); + wp_register_style( 'um_responsive', um_url . '/assets/css/um-responsive.css', array( 'um_profile', 'um_crop' ), ultimatemember_version ); + wp_register_style( 'um_account', um_url . '/assets/css/um-account.css', array(), ultimatemember_version ); + + wp_register_script( 'um_admin_blocks_shortcodes', um_url . 'assets/js/um-blocks' . $this->suffix . '.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), ultimatemember_version, true ); + wp_set_script_translations( 'jb_admin_blocks_shortcodes', 'ultimate-member' ); + + if ( ! empty( UM()->account()->get_tab_fields( 'notifications', array() ) ) ) { + $notifications_enabled = 1; + } else { + $notifications_enabled = 0; + } + + $um_account_settings = array( + 'general' => array( + 'label' => __( 'General', 'ultimate-member' ), + 'enabled' => 1, + ), + 'password' => array( + 'label' => __( 'Password', 'ultimate-member' ), + 'enabled' => UM()->options()->get( 'account_tab_password' ), + ), + 'privacy' => array( + 'label' => __( 'Privacy', 'ultimate-member' ), + 'enabled' => UM()->options()->get( 'account_tab_privacy' ), + ), + 'notifications' => array( + 'label' => __( 'Notifications', 'ultimate-member' ), + 'enabled' => $notifications_enabled, + ), + 'delete' => array( + 'label' => __( 'Delete', 'ultimate-member' ), + 'enabled' => UM()->options()->get( 'account_tab_delete' ), + ), + ); + $um_account_settings = apply_filters( 'um_extend_account_settings', $um_account_settings ); + wp_localize_script( 'um_admin_blocks_shortcodes', 'um_account_settings', $um_account_settings ); + + wp_enqueue_script( 'um_admin_blocks_shortcodes' ); wp_register_script( 'um_datetime', um_url . 'assets/js/pickadate/picker.js', array( 'jquery' ), ultimatemember_version, true ); wp_register_script( 'um_datetime_date', um_url . 'assets/js/pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); @@ -127,6 +167,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { wp_register_script( 'um_dropdown', um_url . 'assets/js/dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); wp_register_script( 'um_members', um_url . 'assets/js/um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry', 'um_scripts' ), ultimatemember_version, true ); + wp_register_script( 'um_account', um_url . 'assets/js/um-account' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), ultimatemember_version, true ); + wp_register_script( 'um_scrollbar', um_url . 'assets/js/simplebar' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); + wp_register_script( 'um_crop', um_url . 'assets/js/um-crop' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); + wp_register_script( 'um_functions', um_url . 'assets/js/um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), ultimatemember_version, true ); + wp_register_script( 'um_responsive', um_url . 'assets/js/um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), ultimatemember_version, true ); + // render blocks wp_enqueue_script( 'um_datetime' ); wp_enqueue_script( 'um_datetime_date' ); @@ -134,10 +180,20 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { wp_enqueue_script( 'um_conditional' ); wp_enqueue_script( 'um_dropdown' ); wp_enqueue_script( 'um_members' ); + wp_enqueue_script( 'um_account' ); + wp_enqueue_script( 'um_scrollbar' ); + wp_enqueue_script( 'um_crop' ); + wp_enqueue_script( 'um_functions' ); + wp_enqueue_script( 'um_responsive' ); + wp_enqueue_style( 'um_members' ); wp_enqueue_style( 'um_styles' ); + wp_enqueue_style( 'um_profile' ); + wp_enqueue_style( 'um_crop' ); + wp_enqueue_style( 'um_responsive' ); + wp_enqueue_style( 'um_account' ); - $custom_css = '.um{opacity: 1;}'; + $custom_css = '.um{opacity: 1;}.um_request_name {display: none !important;}'; wp_add_inline_style( 'um_styles', $custom_css ); } diff --git a/includes/blocks/um-account/block.json b/includes/blocks/um-account/block.json new file mode 100644 index 00000000..2085aec7 --- /dev/null +++ b/includes/blocks/um-account/block.json @@ -0,0 +1,15 @@ +{ + "apiVersion": 2, + "name": "um-block/um-account", + "title": "Account", + "description": "Displaying the account page of the current user", + "icon": "id", + "category": "um-blocks", + "attributes": { + "tab": { + "type": "string" + } + }, + "editorScript": "file:./build/index.js", + "textdomain": "ultimate-member" +} diff --git a/includes/blocks/um-account/src/index.js b/includes/blocks/um-account/src/index.js new file mode 100644 index 00000000..530cd789 --- /dev/null +++ b/includes/blocks/um-account/src/index.js @@ -0,0 +1,88 @@ +import { registerBlockType } from '@wordpress/blocks'; +import ServerSideRender from '@wordpress/server-side-render'; +import {InspectorControls, useBlockProps} from '@wordpress/block-editor'; +import {PanelBody, SelectControl} from "@wordpress/components"; + +registerBlockType('um-block/um-account', { + edit: function (props) { + let { tab, setAttributes } = props.attributes; + const blockProps = useBlockProps(); + + function get_options() { + var option = []; + + option.push( { label: wp.i18n.__( 'All', 'ultimate-member' ), value: 'all' } ); + + for ( var key in um_account_settings ) { + if ( um_account_settings.hasOwnProperty( key ) && um_account_settings[ key ]['enabled'] ) { + option.push( + { + label: um_account_settings[ key ]['label'], + value: key + } + ) + } + } + + return option; + } + + function umShortcode( value ) { + + var shortcode = '[ultimatemember_account'; + + if ( value !== 'all' ) { + shortcode = shortcode + ' tab="' + value + '"'; + } + + shortcode = shortcode + ']'; + + props.setAttributes({ content: shortcode }); + } + + return ( +