'wppb-block-register.js', ], admin_url( 'admin-ajax.php' ) ), [ 'wp-blocks', 'wp-element', 'wp-editor' ], microtime(), true ); register_block_type( __DIR__, [ 'render_callback' => function( $attributes, $content ) { ob_start(); do_action( 'wppb/register/render_callback', $attributes, $content ); return ob_get_clean(); }, ] ); } ); /** * Render: PHP. * * @param array $attributes Optional. Block attributes. Default empty array. * @param string $content Optional. Block content. Default empty string. */ add_action( 'wppb/register/render_callback', function( $attributes, $content ) { if ( $attributes['is_preview'] ) { echo ' Register Block Preview '; } else { $form_name = ''; if ( array_key_exists( 'form_name', $attributes ) ) { $form_name = $attributes['form_name']; } if ( !$form_name || $form_name === '' ) { $atts = [ 'role' => $attributes['role'] !== '' ? ' role="' . esc_attr( $attributes['role'] ) . '"' : '', 'form_name' => '', 'redirect_url' => $attributes['redirect_url'] !== '' ? ' redirect_url="' . esc_url( $attributes['redirect_url'] ) . '"' : '', 'logout_redirect_url' => $attributes['logout_redirect_url'] !== '' ? ' logout_redirect_url="' . esc_url( $attributes['logout_redirect_url'] ) . '"' : '', 'automatic_login' => $attributes['automatic_login'] ? ' automatic_login="yes"' : '', ]; } else { $atts = [ 'role' => '', 'form_name' => ' form_name="' . $form_name . '"', 'redirect_url' => '', 'logout_redirect_url' => $attributes['logout_redirect_url'] !== '' ? ' logout_redirect_url="' . esc_url( $attributes['logout_redirect_url'] ) . '"' : '', 'automatic_login' => '', ]; } echo '
' . do_shortcode( '[wppb-register' . $atts['role'] . $atts['form_name'] . $atts['redirect_url'] . $atts['logout_redirect_url'] . $atts['automatic_login'] . ' ]' ) . '
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } }, 10, 2 ); /** * Register: JavaScript. */ add_action( 'wp_ajax_wppb-block-register.js', function() { header( 'Content-Type: text/javascript' ); $args = array( 'post_type' => 'page', 'posts_per_page' => -1 ); if( function_exists( 'wc_get_page_id' ) ) $args['exclude'] = wc_get_page_id( 'shop' ); $all_pages = get_posts( $args ); ?> ( function ( blocks, i18n, element, serverSideRender, blockEditor, components ) { var { __ } = i18n; var el = element.createElement; var PanelBody = components.PanelBody; var SelectControl = components.SelectControl; var ToggleControl = components.ToggleControl; var TextControl = components.TextControl; var Button = components.Button; var Text = components.__experimentalText; var InspectorControls = wp.editor.InspectorControls; blocks.registerBlockType( 'wppb/register', { icon: el('svg', {}, el( 'path', { d: "m 6.060947,9.5388969 c -0.049,-0.058 -0.1159,-0.093 -0.1778,-0.1361 0,0 -0.2921,-0.215 -0.2921,-0.215 -0.271,-0.2089 -0.5275,-0.4398 -0.7608,-0.6903 -0.6133,-0.6582 -1.0671,-1.5116 -1.2277,-2.4003 -0.043,-0.2401 -0.081,-0.5187 -0.082,-0.762 0,0 -0.013,-0.2794 -0.013,-0.2794 0,0 0.012,-0.127 0.012,-0.127 0,0 0,-0.1651 0,-0.1651 0,0 0.012,-0.127 0.012,-0.127 0,0 0.049,-0.4318 0.049,-0.4318 0.1148,-0.7792 0.4319,-1.5308 0.9068,-2.159 0.5129,-0.6785 1.2601,-1.27849998 2.043,-1.61639998 0.5894,-0.2544 1.2241,-0.4081 1.8669,-0.4156 0,0 0.1651,-0.0130000022 0.1651,-0.0130000022 0,0 0.127,0.0120000021 0.127,0.0120000021 0,0 0.1651,0 0.1651,0 0,0 0.127,0.012 0.127,0.012 0.3658,0.025 0.729,0.096 1.0795,0.2041 1.3113,0.4033 2.4651,1.33699998 3.0701,2.57829998 0.6277,1.2874 0.7121,2.7812 0.1735,4.1148 -0.2399,0.5938 -0.5806,1.1109 -1.0063,1.5875 -0.2369,0.2653 -0.499,0.5094 -0.7768,0.7316 -0.089,0.072 -0.2831,0.2336 -0.381,0.2717 0,0 0,0.025 0,0.025 0,0 0.7112,0.2940999 0.7112,0.2940999 0.6331,0.2717002 1.0023,0.4378002 1.5621,0.8586002 0,0 0.3173,0.185 0.3173,0.185 0.213,0.1813 -0.071,0.4368 -0.203,0.5673 -0.041,0.041 -0.066,0.065 -0.1143,0.097 -0.05,0.034 -0.093,0.051 -0.1524,0.062 -0.1604,0.029 -0.3036,-0.053 -0.4318,-0.138 0,0 -0.381,-0.2499 -0.381,-0.2499 -0.5649,-0.3397 -1.0933,-0.5842 -1.7272,-0.7693 -0.7370002,-0.2153 -1.5072,-0.3063 -2.2733,-0.2975 0,0 -0.127,0.012 -0.127,0.012 0,0 -0.127,0 -0.127,0 0,0 -0.127,0.012 -0.127,0.012 0,0 -0.7366,0.087 -0.7366,0.087 -0.907,0.1512 -1.7832,0.4743 -2.5781,0.9356 -1.6257,0.9436 -2.9202,2.547 -3.4635,4.3507 -0.1191,0.3957 -0.1818,0.6592 -0.2501,1.0668 0,0 -0.0710001,0.6223 -0.0710001,0.6223 0,0.1503 0.042,0.3048 0.16490005,0.4015 0.1042,0.082 0.2529,0.1012 0.381,0.1071 0,0 0.254,0.012 0.254,0.012 0,0 0.2159,-0.013 0.2159,-0.013 0,0 5.4737,0 5.4737,0 0,0 2.4891998,0 2.4891998,0 0,0 0.1905002,-0.013 0.1905002,-0.013 0,0 0.9906,0 0.9906,0 0,0 0.1905,-0.013 0.1905,-0.013 0,0 0.5969,0 0.5969,0 0,0 0.1905,-0.013 0.1905,-0.013 0.2018,-2e-4 0.3568,0 0.5588,0.031 0.4647,0.078 0.8372,0.3136 1.2065,0.5931 0.096,0.073 0.3827,0.2873 0.4445,0.3666 0,0 -10.9728,0 -10.9728,0 0,0 -1.9431,0 -1.9431,0 0,0 -0.1524,-0.012 -0.1524,-0.012 -0.38190005,-0.027 -0.82500005,-0.1105 -1.05950005,-0.4457 -0.206,-0.2942 -0.189,-0.6494 -0.1851,-0.9906 0,0 0.071,-0.5842 0.071,-0.5842 0,0 0.1974,-0.9525 0.1974,-0.9525 0.3729,-1.4916 1.08010005,-2.8205 2.15750005,-3.9243 0,0 0.1776,-0.1656 0.1776,-0.1656 0.4393,-0.4201 0.9205,-0.7823 1.4351,-1.105 0.437,-0.2741 0.9107,-0.5223002 1.3843,-0.7268002 0.1284,-0.055 0.5215,-0.2298999 0.635,-0.2504999 z m 2.2987,-8.57070002 c 0,0 -0.2667,0.027 -0.2667,0.027 -0.2706,0.036 -0.5407,0.092 -0.8001,0.17870002 -1.0421,0.3475 -1.9575,1.1324 -2.4285,2.1291 -0.2717,0.5754 -0.4109,1.2057 -0.4036,1.8415 0,0 0.012,0.1397 0.012,0.1397 0.053,1.2058 0.6753,2.3521 1.6388,3.0748 0.3587,0.269 0.7435,0.4708 1.1684,0.6124 0.3321,0.1108 0.6673,0.1762 1.016,0.2002 0,0 0.127,0.012 0.127,0.012 0,0 0.2794,0 0.2794,0 0,0 0.1524,-0.012 0.1524,-0.012 0.5485,-0.038 1.0816998,-0.1768 1.5748,-0.4234 0.4468,-0.2234 0.8984,-0.5618 1.2284,-0.9367 0.3764,-0.4277 0.6455,-0.8846 0.833,-1.4224 0.1068,-0.3064 0.2114,-0.8199 0.2119,-1.143 0,0 0,-0.3683 0,-0.3683 0,-0.2176 -0.062,-0.561 -0.1159,-0.7747 -0.223,-0.8925 -0.7155,-1.6606 -1.4335,-2.2377 -0.3838,-0.3085 -0.8161,-0.5404 -1.2827002,-0.696 -0.3125998,-0.1042 -0.6365998,-0.1686 -0.9651998,-0.19160002 0,0 -0.1524,-0.01 -0.1524,-0.01 0,0 -0.3937,0 -0.3937,0 z m 7.4295,13.09190012 c 0,0 0,-2.8194 0,-2.8194 0,0 0,-0.7112 0,-0.7112 0,-0.1319 0.062,-0.1395 0.1778,-0.1397 0,0 0.635,0 0.635,0 0.123,0 0.1518,0.049 0.1524,0.1651 0,0 0,0.6858 0,0.6858 0,0 0,2.8194 0,2.8194 0,0 2.8194,0 2.8194,0 0,0 0.6985,0 0.6985,0 0.1339,0 0.1522,0.058 0.1524,0.1778 0,0 0,0.6477 0,0.6477 0,0.129 -0.05,0.1396 -0.1651,0.1397 0,0 -3.5052,0 -3.5052,0 0,0 0,2.8194 0,2.8194 0,0 0,0.7112 0,0.7112 0,0.129 -0.05,0.1396 -0.1651,0.1397 0,0 -0.6604,0 -0.6604,0 -0.1227,-8e-4 -0.1394,-0.037 -0.1397,-0.1524 0,0 0,-3.5179 0,-3.5179 0,0 -2.8194,0 -2.8194,0 0,0 -0.7112,0 -0.7112,0 -0.1299,-8e-4 -0.1395,-0.048 -0.1397,-0.1651 0,0 0,-0.6604 0,-0.6604 0,-0.113 0.043,-0.1381 0.1524,-0.1397 0,0 0.6985,0 0.6985,0 0,0 2.8194,0 2.8194,0 z" } ) ), attributes: { form_name : { type: 'string', default: '' }, role : { type: 'string', default: '' }, automatic_login : { type: 'boolean', default: false }, redirect_url : { type: 'string', default: '' }, logout_redirect_url : { type: 'string', default: '' }, is_preview : { type: 'boolean', default: false, }, }, edit: function ( props ) { return [ el( 'div', Object.assign( blockEditor.useBlockProps(), { key: 'wppb/register/render' } ), el( serverSideRender, { block: 'wppb/register', attributes: props.attributes, } ) ), el( InspectorControls, { key: 'wppb/register/inspector' }, [ el( PanelBody, { title: __( 'Form Settings' , 'profile-builder' ), key: 'wppb/register/inspector/form_settings', }, [ el( SelectControl, { label: __( 'Form' , 'profile-builder' ), key: 'wppb/register/inspector/form_settings/form_name', help: __( 'Select the desired Registration form' , 'profile-builder' ), value: props.attributes.form_name, options: [ { label: __( 'Default' , 'profile-builder' ), value: '' }, 'wppb-rf-cpt', 'posts_per_page' => -1 ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) { foreach ( $the_query->posts as $post ) { ?> { label: 'post_title ); ?>', value: 'post_title ) ); ?>' }, ], onChange: ( value ) => { props.setAttributes( { form_name: value } ); } } ), props.attributes.form_name == '' ? el( SelectControl, { label: __( 'Assigned Role' , 'profile-builder' ), key: 'wppb/register/inspector/form_settings/role', help: __( 'Select a Role to be assigned to users that register via this form' , 'profile-builder' ), value: props.attributes.role, options: [ { label: __( 'Default' , 'profile-builder' ), value: '' }, $role) { $user_roles[$key] = $role['name']; ?> { label: '', value: '' }, ], onChange: ( value ) => { props.setAttributes( { role: value } ); } } ) : '', props.attributes.form_name == '' ? el( ToggleControl, { label: __( 'Automatic Login' , 'profile-builder' ), key: 'wppb/register/inspector/form_settings/automatic_login', help: __( 'Automatically log in users after they register' , 'profile-builder' ), checked: props.attributes.automatic_login, onChange: ( value ) => { props.setAttributes( { automatic_login: !props.attributes.automatic_login } ); } } ) : '', props.attributes.form_name != '' ? el( Text, { key: 'wppb/register/inspector/form_settings/notice' }, [ __( 'Edit the Settings for this form ' , 'profile-builder' ), el( Button, { key: 'wppb/register/inspector/form_settings/notice_button', href: '', target: '_blank', text: __( 'here' , 'profile-builder' ), variant: 'link' }, ) ] ) : '', ] ), el( PanelBody, { title: __( 'Redirects' , 'profile-builder' ), key: 'wppb/register/inspector/redirects', }, [ props.attributes.form_name == '' ? el( SelectControl, { label: __( 'After Registration' , 'profile-builder' ), key: 'wppb/register/inspector/redirects/redirect_url', help: __( 'Select a page for an After Registration Redirect' , 'profile-builder' ), value: props.attributes.redirect_url, options: [ { label: __( '' , 'profile-builder' ), value: '' }, { label: 'post_title ) ?>', value: 'ID ) ) ?>' }, ], onChange: ( value ) => { props.setAttributes( { redirect_url: value } ); } } ) : '', el( SelectControl, { label: __( 'After Logout' , 'profile-builder' ), key: 'wppb/register/inspector/redirects/logout_redirect_url', help: __( 'Select a page for an After Logout Redirect' , 'profile-builder' ), value: props.attributes.logout_redirect_url, options: [ { label: __( '' , 'profile-builder' ), value: '' }, { label: 'post_title ) ?>', value: 'ID ) ) ?>' }, ], onChange: ( value ) => { props.setAttributes( { logout_redirect_url: value } ); } } ), ] ) ] ), el( blockEditor.InspectorAdvancedControls, { key: 'wppb/register/inspector_advanced' }, [ props.attributes.form_name == '' ? el( TextControl, { label: __( 'After Registration' , 'profile-builder' ), key: 'wppb/register/inspector_advanced/redirects/redirect_url', help: __( 'Manually type in an After Registration Redirect URL' , 'profile-builder' ), value: props.attributes.redirect_url, onChange: ( value ) => { props.setAttributes( { redirect_url: value } ); } } ) : '', el( TextControl, { label: __( 'After Logout' , 'profile-builder' ), key: 'wppb/register/inspector_advanced/redirects/logout_redirect_url', help: __( 'Manually type in an After Logout Redirect URL' , 'profile-builder' ), value: props.attributes.logout_redirect_url, onChange: ( value ) => { props.setAttributes( { logout_redirect_url: value } ); } } ) ] ) ]; } } ); } )( window.wp.blocks, window.wp.i18n, window.wp.element, window.wp.serverSideRender, window.wp.blockEditor, window.wp.components );