mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
Merge branch 'fix_conditions_fields_logic' of https://github.com/ultimatemember/ultimatemember into release/2.0.18
This commit is contained in:
@@ -12,7 +12,6 @@ jQuery(document).ready( function (){
|
||||
function um_get_field_default_value( $dom ) {
|
||||
var default_value = '';
|
||||
var type = um_get_field_type($dom);
|
||||
|
||||
switch ( type ) {
|
||||
|
||||
case 'text':
|
||||
@@ -25,7 +24,6 @@ jQuery(document).ready( function (){
|
||||
|
||||
case 'multiselect':
|
||||
default_value = $dom.find('select').val();
|
||||
|
||||
break;
|
||||
|
||||
case 'radio':
|
||||
@@ -249,7 +247,6 @@ jQuery(document).ready( function (){
|
||||
}
|
||||
|
||||
if (condition.operator == 'equals to') {
|
||||
|
||||
if (condition.value == live_field_value && um_in_array(live_field_value, $owners_values[condition.owner])) {
|
||||
$owners[condition.owner][index] = true;
|
||||
} else {
|
||||
@@ -515,6 +512,11 @@ jQuery(document).ready( function (){
|
||||
um_apply_conditions(me, false);
|
||||
});
|
||||
|
||||
jQuery(document).on('input change', '.um-field input[type=number]', function () {
|
||||
var me = jQuery(this);
|
||||
um_apply_conditions(me, false);
|
||||
});
|
||||
|
||||
jQuery(document).on('input change', '.um-field input[type=password]', function () {
|
||||
var me = jQuery(this);
|
||||
um_apply_conditions(me, false);
|
||||
|
||||
@@ -258,3 +258,7 @@ p.disabled-on-off .um-admin-yesno *{
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.um-admin-cur-condition-template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ jQuery(document).ready(function() {
|
||||
jQuery('.tipsy').hide();
|
||||
|
||||
um_admin_remove_modal();
|
||||
|
||||
console.log(um_admin_ajax_data.ajax_url);
|
||||
jQuery.ajax({
|
||||
url: um_admin_ajax_data.ajax_url,
|
||||
type: 'POST',
|
||||
|
||||
@@ -3,13 +3,13 @@ jQuery(document).ready(function() {
|
||||
/* Remove field permanently */
|
||||
jQuery(document).on('click', '.um-admin-btns a span.remove', function(e){
|
||||
e.preventDefault();
|
||||
|
||||
if (confirm('This will permanently delete this custom field from database')) {
|
||||
|
||||
|
||||
if ( confirm( 'This will permanently delete this custom field from database' ) ) {
|
||||
|
||||
jQuery(this).parents('a').remove();
|
||||
|
||||
|
||||
arg1 = jQuery(this).parents('a').data('arg1');
|
||||
|
||||
|
||||
jQuery.ajax({
|
||||
url: um_admin_field_data.do_ajax_url,
|
||||
type: 'POST',
|
||||
@@ -21,13 +21,12 @@ jQuery(document).ready(function() {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
/* Add a Field */
|
||||
jQuery(document).on('submit', 'form.um_add_field', function(e){
|
||||
|
||||
@@ -50,9 +49,8 @@ jQuery(document).ready(function() {
|
||||
form.css({'opacity': 1});
|
||||
},
|
||||
success: function(data){
|
||||
|
||||
if (data.error){
|
||||
|
||||
|
||||
c = 0;
|
||||
jQuery.each(data.error, function(i, v){
|
||||
c++;
|
||||
@@ -61,11 +59,11 @@ jQuery(document).ready(function() {
|
||||
form.find('.um-admin-error-block').show().html(v);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
um_admin_modal_responsive();
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
jQuery('.um-col-demon-settings').data('in_row', '');
|
||||
jQuery('.um-col-demon-settings').data('in_sub_row', '');
|
||||
jQuery('.um-col-demon-settings').data('in_column', '');
|
||||
|
||||
@@ -198,21 +198,26 @@ jQuery(document).ready(function() {
|
||||
if ( jQuery(this).hasClass('disabled') )
|
||||
return false;
|
||||
|
||||
var content = jQuery(this).parents('.um-admin-btn-content');
|
||||
var length = content.find('.um-admin-cur-condition').length;
|
||||
var content = jQuery(this).parents('.um-admin-btn-content'),
|
||||
length = content.find('.um-admin-cur-condition').length;
|
||||
|
||||
if ( length < 5 ) {
|
||||
//content.find('select').select2('destroy');
|
||||
|
||||
var cloned = jQuery(this).parents('.um-admin-cur-condition').clone();
|
||||
cloned.find('input[type=text],select').each(function(){
|
||||
var template = jQuery('.um-admin-btn-content').find('.um-admin-cur-condition-template').clone();
|
||||
|
||||
template.find('input[type=text],select').each(function(){
|
||||
jQuery(this).attr('id', jQuery(this).attr('id') + length );
|
||||
jQuery(this).attr('name', jQuery(this).attr('name') + length );
|
||||
});
|
||||
cloned.find('input[type=text]').val('');
|
||||
cloned.find('.um-admin-new-condition').replaceWith('<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>');
|
||||
|
||||
cloned.appendTo( content );
|
||||
cloned.find('select').val('');
|
||||
template.find('input[type=text]').val('');
|
||||
template.find('select').val('');
|
||||
|
||||
template.appendTo( content );
|
||||
jQuery(template).removeClass("um-admin-cur-condition-template");
|
||||
jQuery(template).addClass("um-admin-cur-condition");
|
||||
|
||||
um_admin_live_update_scripts();
|
||||
um_admin_modal_responsive();
|
||||
} else {
|
||||
|
||||
@@ -167,27 +167,27 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
|
||||
function um_admin_pre_save_field_to_form( $array ){
|
||||
unset( $array['conditions'] );
|
||||
if ( isset($array['conditional_field']) && !empty( $array['conditional_action'] ) && !empty( $array['conditional_operator'] ) ) {
|
||||
$array['conditional_value'] = ! empty( $array['conditional_value'] ) ? $array['conditional_value'] : '';
|
||||
$array['conditional_value'] = isset( $array['conditional_value'] ) ? $array['conditional_value'] : '';
|
||||
$array['conditions'][] = array( $array['conditional_action'], $array['conditional_field'], $array['conditional_operator'], $array['conditional_value'] );
|
||||
}
|
||||
|
||||
if ( isset($array['conditional_field1']) && !empty( $array['conditional_action1'] ) && !empty( $array['conditional_operator1'] ) ) {
|
||||
$array['conditional_value1'] = ! empty( $array['conditional_value1'] ) ? $array['conditional_value1'] : '';
|
||||
$array['conditional_value1'] = isset( $array['conditional_value1'] ) ? $array['conditional_value1'] : '';
|
||||
$array['conditions'][] = array( $array['conditional_action1'], $array['conditional_field1'], $array['conditional_operator1'], $array['conditional_value1'] );
|
||||
}
|
||||
|
||||
if ( isset($array['conditional_field2']) && !empty( $array['conditional_action2'] ) && !empty( $array['conditional_operator2'] ) ) {
|
||||
$array['conditional_value2'] = ! empty( $array['conditional_value2'] ) ? $array['conditional_value2'] : '';
|
||||
$array['conditional_value2'] = isset( $array['conditional_value2'] ) ? $array['conditional_value2'] : '';
|
||||
$array['conditions'][] = array( $array['conditional_action2'], $array['conditional_field2'], $array['conditional_operator2'], $array['conditional_value2'] );
|
||||
}
|
||||
|
||||
if ( isset($array['conditional_field3']) && !empty( $array['conditional_action3'] ) && !empty( $array['conditional_operator3'] ) ) {
|
||||
$array['conditional_value3'] = ! empty( $array['conditional_value3'] ) ? $array['conditional_value3'] : '';
|
||||
$array['conditional_value3'] = isset( $array['conditional_value3'] ) ? $array['conditional_value3'] : '';
|
||||
$array['conditions'][] = array( $array['conditional_action3'], $array['conditional_field3'], $array['conditional_operator3'], $array['conditional_value3'] );
|
||||
}
|
||||
|
||||
if ( isset($array['conditional_field4']) && !empty( $array['conditional_action4'] ) && !empty( $array['conditional_operator4'] ) ) {
|
||||
$array['conditional_value4'] = ! empty( $array['conditional_value4'] ) ? $array['conditional_value4'] : '';
|
||||
$array['conditional_value4'] = isset( $array['conditional_value4'] ) ? $array['conditional_value4'] : '';
|
||||
$array['conditions'][] = array( $array['conditional_action4'], $array['conditional_field4'], $array['conditional_operator4'], $array['conditional_value4'] );
|
||||
}
|
||||
|
||||
@@ -231,10 +231,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
|
||||
|
||||
<div class="um-admin-btn-content">
|
||||
|
||||
<p class="um-admin-reset-conditions"><a href="#" class="button button-primary"><?php _e( 'Reset all rules', 'ultimate-member' ); ?></a></p>
|
||||
<p><a href="#" class="um-admin-new-condition button button-primary um-admin-tipsy-n" title="Add new condition"><?php _e( 'Add new rule', 'ultimate-member' ); ?></a></p>
|
||||
<p class="um-admin-reset-conditions"><a href="#" class="button"><?php _e( 'Reset all rules', 'ultimate-member' ); ?></a></p>
|
||||
<div class="um-admin-clear"></div>
|
||||
|
||||
<?php if ( isset( $edit_array['conditions'] ) ) {
|
||||
<?php if ( isset( $edit_array['conditions'] ) && count( $edit_array['conditions'] ) != 0 ) {
|
||||
|
||||
foreach ( $edit_array['conditions'] as $k => $arr ) {
|
||||
|
||||
@@ -247,11 +248,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
|
||||
<?php $metabox->field_input( '_conditional_operator' . $k, $form_id ); ?>
|
||||
<?php $metabox->field_input( '_conditional_value' . $k, $form_id ); ?>
|
||||
|
||||
<?php if ( $k == '' ) { ?>
|
||||
<p><a href="#" class="um-admin-new-condition button um-admin-tipsy-n" title="Add new condition"><i class="um-icon-plus" style="margin-right:0!important"></i></a></p>
|
||||
<?php } else { ?>
|
||||
<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>
|
||||
<?php } ?>
|
||||
<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>
|
||||
|
||||
<div class="um-admin-clear"></div>
|
||||
</div>
|
||||
@@ -274,7 +271,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
<div class="um-admin-cur-condition-template">
|
||||
|
||||
<?php $metabox->field_input( '_conditional_action', $form_id ); ?>
|
||||
<?php $metabox->field_input( '_conditional_field', $form_id ); ?>
|
||||
<?php $metabox->field_input( '_conditional_operator', $form_id ); ?>
|
||||
<?php $metabox->field_input( '_conditional_value', $form_id ); ?>
|
||||
|
||||
<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>
|
||||
|
||||
<div class="um-admin-clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -659,6 +666,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
|
||||
$output['error'] = apply_filters( 'um_admin_field_update_error_handling', $output['error'], $array );
|
||||
|
||||
extract( $array['post'] );
|
||||
|
||||
if ( empty( $output['error'] ) ){
|
||||
|
||||
$save = array();
|
||||
|
||||
@@ -1313,7 +1313,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
|
||||
?>
|
||||
|
||||
<p>
|
||||
<input type="text" name="<?php echo $attribute; ?>" id="<?php echo $attribute; ?>" value="<?php echo ( $this->edit_mode_value ) ? $this->edit_mode_value : ''; ?>" placeholder="<?php _e( 'Value', 'ultimate-member' ); ?>" style="width: 150px!important;position: relative;top: -1px;" />
|
||||
<input type="text" name="<?php echo $attribute; ?>" id="<?php echo $attribute; ?>" value="<?php echo isset( $this->edit_mode_value ) ? $this->edit_mode_value : ''; ?>" placeholder="<?php _e( 'Value', 'ultimate-member' ); ?>" style="width: 150px!important;position: relative;top: -1px;" />
|
||||
</p>
|
||||
|
||||
<?php
|
||||
|
||||
@@ -182,8 +182,38 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
*/
|
||||
function delete_field_from_form( $id, $form_id ) {
|
||||
$fields = UM()->query()->get_attr( 'custom_fields', $form_id );
|
||||
if (isset( $fields[$id] )) {
|
||||
unset( $fields[$id] );
|
||||
|
||||
if ( isset( $fields[ $id ] ) ) {
|
||||
$condition_fields = get_option( 'um_fields' );
|
||||
|
||||
foreach ( $condition_fields as $key => $value ) {
|
||||
$deleted_field = array_search( $id, $value );
|
||||
|
||||
if ( $key != $id && $deleted_field != false ) {
|
||||
$deleted_field_id = str_replace( 'conditional_field', '', $deleted_field );
|
||||
|
||||
if ( $deleted_field_id == '' ) {
|
||||
$arr_id = 0;
|
||||
} else {
|
||||
$arr_id = $deleted_field_id;
|
||||
}
|
||||
|
||||
unset( $condition_fields[ $key ][ 'conditional_action' . $deleted_field_id ] );
|
||||
unset( $condition_fields[ $key ][ $deleted_field ] );
|
||||
unset( $condition_fields[ $key ][ 'conditional_operator' . $deleted_field_id ] );
|
||||
unset( $condition_fields[ $key ][ 'conditional_value' . $deleted_field_id ] );
|
||||
unset( $condition_fields[ $key ]['conditions'][ $arr_id ] );
|
||||
|
||||
unset( $fields[ $key ][ 'conditional_action' . $deleted_field_id ] );
|
||||
unset( $fields[ $key ][ $deleted_field ] );
|
||||
unset( $fields[ $key ][ 'conditional_operator' . $deleted_field_id ] );
|
||||
unset( $fields[ $key ][ 'conditional_value' . $deleted_field_id ] );
|
||||
unset( $fields[ $key ]['conditions'][ $arr_id ] );
|
||||
}
|
||||
}
|
||||
|
||||
update_option( 'um_fields' , $condition_fields );
|
||||
unset( $fields[ $id ] );
|
||||
UM()->query()->update_attr( 'custom_fields', $form_id, $fields );
|
||||
}
|
||||
}
|
||||
@@ -4010,23 +4040,23 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
switch ($act_id) {
|
||||
|
||||
case 'um_admin_duplicate_field':
|
||||
UM()->fields()->duplicate_field( $arg1, $arg2 );
|
||||
$this->duplicate_field( $arg1, $arg2 );
|
||||
break;
|
||||
|
||||
case 'um_admin_remove_field_global':
|
||||
UM()->fields()->delete_field_from_db( $arg1 );
|
||||
$this->delete_field_from_db( $arg1 );
|
||||
break;
|
||||
|
||||
case 'um_admin_remove_field':
|
||||
UM()->fields()->delete_field_from_form( $arg1, $arg2 );
|
||||
$this->delete_field_from_form( $arg1, $arg2 );
|
||||
break;
|
||||
|
||||
case 'um_admin_add_field_from_predefined':
|
||||
UM()->fields()->add_field_from_predefined( $arg1, $arg2, $position );
|
||||
$this->add_field_from_predefined( $arg1, $arg2, $position );
|
||||
break;
|
||||
|
||||
case 'um_admin_add_field_from_list':
|
||||
UM()->fields()->add_field_from_list( $arg1, $arg2, $position );
|
||||
$this->add_field_from_list( $arg1, $arg2, $position );
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user