- fixed "is_block" argument for ultimatemember shortcodes;

- added sanitize shortcode arguments functions;
This commit is contained in:
Mykyta Synelnikov
2023-09-02 00:53:51 +03:00
parent fca7b4b0d5
commit 6e9d122494
3 changed files with 19 additions and 15 deletions
+8 -8
View File
@@ -610,8 +610,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
$this->init_displayed_fields( $fields, $id );
foreach ( $fields as $key => $data ) {
if ( isset( $shortcode_args['is_block'] ) && 1 === (int) $shortcode_args['is_block'] ) {
$data['is_block'] = 1;
if ( ! empty( $shortcode_args['is_block'] ) ) {
$data['is_block'] = true;
}
$output .= UM()->fields()->edit_field( $key, $data );
}
@@ -653,8 +653,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
$this->init_displayed_fields( $fields, $id );
foreach ( $fields as $key => $data ) {
if ( isset( $shortcode_args['is_block'] ) && 1 === (int) $shortcode_args['is_block'] ) {
$data['is_block'] = 1;
if ( ! empty( $shortcode_args['is_block'] ) ) {
$data['is_block'] = true;
}
$output .= UM()->fields()->edit_field( $key, $data );
}
@@ -710,8 +710,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
$this->init_displayed_fields( $fields, $id );
foreach ( $fields as $key => $data ) {
if ( isset( $shortcode_args['is_block'] ) && 1 === (int) $shortcode_args['is_block'] ) {
$data['is_block'] = 1;
if ( ! empty( $shortcode_args['is_block'] ) ) {
$data['is_block'] = true;
}
$output .= UM()->fields()->edit_field( $key, $data );
}
@@ -751,8 +751,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
$this->init_displayed_fields( $fields, $id );
foreach ( $fields as $key => $data ) {
if ( isset( $shortcode_args['is_block'] ) && 1 === (int) $shortcode_args['is_block'] ) {
$data['is_block'] = 1;
if ( ! empty( $shortcode_args['is_block'] ) ) {
$data['is_block'] = true;
}
$output .= UM()->fields()->edit_field( $key, $data );
}
+5 -5
View File
@@ -2094,7 +2094,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
public function edit_field( $key, $data, $rule = false, $args = array() ) {
global $_um_profile_id;
if ( isset( $data['is_block'] ) && 1 === (int) $data['is_block'] ) {
if ( ! empty( $data['is_block'] ) ) {
$form_suffix = '';
} else {
$form_suffix = UM()->form()->form_suffix;
@@ -2106,7 +2106,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
$_um_profile_id = um_user( 'ID' );
}
if ( isset( $data['is_block'] ) && 1 === (int) $data['is_block'] && ! is_user_logged_in() ) {
if ( ! empty( $data['is_block'] ) && ! is_user_logged_in() ) {
$_um_profile_id = 0;
}
@@ -4124,7 +4124,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
if ( $col1_fields ) {
foreach ( $col1_fields as $key => $data ) {
if ( ! empty( $args['is_block'] ) ) {
$data['is_block'] = 1;
$data['is_block'] = true;
}
$output .= $this->edit_field( $key, $data );
}
@@ -4138,7 +4138,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
if ( $col1_fields ) {
foreach ( $col1_fields as $key => $data ) {
if ( ! empty( $args['is_block'] ) ) {
$data['is_block'] = 1;
$data['is_block'] = true;
}
$output .= $this->edit_field( $key, $data );
}
@@ -4150,7 +4150,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
if ( $col2_fields ) {
foreach ( $col2_fields as $key => $data ) {
if ( ! empty( $args['is_block'] ) ) {
$data['is_block'] = 1;
$data['is_block'] = true;
}
$output .= $this->edit_field( $key, $data );
}
+6 -2
View File
@@ -606,12 +606,16 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
$args = shortcode_atts(
array(
'form_id' => '',
'is_block' => 0,
'is_block' => false,
),
$args,
'ultimatemember'
);
// Sanitize shortcode arguments.
$args['form_id'] = ! empty( $args['form_id'] ) ? absint( $args['form_id'] ) : '';
$args['is_block'] = (bool) $args['is_block'];
/**
* Filters variable for enable singleton shortcode loading on the same page.
* Note: Set it to `false` if you don't need to render the same form twice or more on the same page.
@@ -779,7 +783,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
}
}
if ( isset( $args['is_block'] ) && 1 === (int) $args['is_block'] && 'profile' === $mode && ! is_user_logged_in() ) {
if ( 'profile' === $mode && ! empty( $args['is_block'] ) && ! is_user_logged_in() ) {
ob_get_clean();
return '';
}