Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/popup-ma.../trunk/classes/Model
File: Popup.php
'size' => 'size',
[500] Fix | Delete
'responsive_min_width' => 'responsive_min_width',
[501] Fix | Delete
'responsive_min_width_unit' => 'responsive_min_width_unit',
[502] Fix | Delete
'responsive_max_width' => 'responsive_max_width',
[503] Fix | Delete
'responsive_max_width_unit' => 'responsive_max_width_unit',
[504] Fix | Delete
'custom_width' => 'custom_width',
[505] Fix | Delete
'custom_width_unit' => 'custom_width_unit',
[506] Fix | Delete
'custom_height' => 'custom_height',
[507] Fix | Delete
'custom_height_unit' => 'custom_height_unit',
[508] Fix | Delete
'custom_height_auto' => 'custom_height_auto',
[509] Fix | Delete
'location' => 'location',
[510] Fix | Delete
'position_from_trigger' => 'position_from_trigger',
[511] Fix | Delete
'position_top' => 'position_top',
[512] Fix | Delete
'position_left' => 'position_left',
[513] Fix | Delete
'position_bottom' => 'position_bottom',
[514] Fix | Delete
'position_right' => 'position_right',
[515] Fix | Delete
'position_fixed' => 'position_fixed',
[516] Fix | Delete
'animation_type' => 'animation_type',
[517] Fix | Delete
'animation_speed' => 'animation_speed',
[518] Fix | Delete
'animation_origin' => 'animation_origin',
[519] Fix | Delete
'overlay_zindex' => 'overlay_zindex',
[520] Fix | Delete
'zindex' => 'zindex',
[521] Fix | Delete
],
[522] Fix | Delete
'close' => [
[523] Fix | Delete
'text' => 'close_text',
[524] Fix | Delete
'button_delay' => 'close_button_delay',
[525] Fix | Delete
'overlay_click' => 'close_on_overlay_click',
[526] Fix | Delete
'esc_press' => 'close_on_esc_press',
[527] Fix | Delete
'f4_press' => 'close_on_f4_press',
[528] Fix | Delete
],
[529] Fix | Delete
];
[530] Fix | Delete
[531] Fix | Delete
return isset( $remapped_meta_settings_keys[ $group ] ) ? $remapped_meta_settings_keys[ $group ] : [];
[532] Fix | Delete
[533] Fix | Delete
}
[534] Fix | Delete
[535] Fix | Delete
/**
[536] Fix | Delete
* Returns all or single display settings.
[537] Fix | Delete
*
[538] Fix | Delete
* @deprecated 1.7.0 Use get_setting instead.
[539] Fix | Delete
*
[540] Fix | Delete
* @param string|null $key Settings -> Display key to get.
[541] Fix | Delete
*
[542] Fix | Delete
* @return mixed
[543] Fix | Delete
*/
[544] Fix | Delete
public function get_display( $key = null ) {
[545] Fix | Delete
$display = $this->dep_get_settings_group( 'display', $key );
[546] Fix | Delete
[547] Fix | Delete
foreach (
[548] Fix | Delete
[
[549] Fix | Delete
'responsive_min_width',
[550] Fix | Delete
'responsive_max_width',
[551] Fix | Delete
'custom_width',
[552] Fix | Delete
'custom_height',
[553] Fix | Delete
] as $key => $value
[554] Fix | Delete
) {
[555] Fix | Delete
$temp = isset( $display[ $key ] ) ? $display[ $key ] : false;
[556] Fix | Delete
[557] Fix | Delete
if ( $temp && is_string( $temp ) ) {
[558] Fix | Delete
$display[ $key ] = preg_replace( '/\D/', '', $temp );
[559] Fix | Delete
$display[ $key . '_unit' ] = str_replace( $display[ $key ], '', $temp );
[560] Fix | Delete
}
[561] Fix | Delete
}
[562] Fix | Delete
[563] Fix | Delete
return $display;
[564] Fix | Delete
}
[565] Fix | Delete
[566] Fix | Delete
/**
[567] Fix | Delete
* Returns all or single close settings.
[568] Fix | Delete
*
[569] Fix | Delete
* @deprecated 1.7.0 Use get_setting instead.
[570] Fix | Delete
*
[571] Fix | Delete
* @param string|null $key Settings key to get.
[572] Fix | Delete
*
[573] Fix | Delete
* @return mixed
[574] Fix | Delete
*/
[575] Fix | Delete
public function get_close( $key = null ) {
[576] Fix | Delete
return $this->dep_get_settings_group( 'close', $key );
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
/**
[580] Fix | Delete
* Returns the slug for a theme. Used for CSS classes.
[581] Fix | Delete
*
[582] Fix | Delete
* @return string
[583] Fix | Delete
*/
[584] Fix | Delete
private function get_theme_slug() {
[585] Fix | Delete
$theme_slug = $this->get_setting( 'theme_slug' );
[586] Fix | Delete
[587] Fix | Delete
if ( false === $theme_slug ) {
[588] Fix | Delete
$theme_slug = get_post_field( 'post_name', $this->get_theme_id() );
[589] Fix | Delete
$this->update_setting( 'theme_slug', $theme_slug );
[590] Fix | Delete
}
[591] Fix | Delete
[592] Fix | Delete
return $theme_slug;
[593] Fix | Delete
}
[594] Fix | Delete
[595] Fix | Delete
/**
[596] Fix | Delete
* Returns array of classes for this popup.
[597] Fix | Delete
*
[598] Fix | Delete
* @param string $element The key or html element identifier.
[599] Fix | Delete
*
[600] Fix | Delete
* @return array $classes
[601] Fix | Delete
*/
[602] Fix | Delete
public function get_classes( $element = 'overlay' ) {
[603] Fix | Delete
$classes = [
[604] Fix | Delete
'overlay' => [
[605] Fix | Delete
'pum',
[606] Fix | Delete
'pum-overlay',
[607] Fix | Delete
'pum-theme-' . $this->get_theme_id(),
[608] Fix | Delete
'pum-theme-' . $this->get_theme_slug(),
[609] Fix | Delete
'popmake-overlay', // Backward Compatibility.
[610] Fix | Delete
],
[611] Fix | Delete
'container' => [
[612] Fix | Delete
'pum-container',
[613] Fix | Delete
'popmake', // Backward Compatibility.
[614] Fix | Delete
'theme-' . $this->get_theme_id(), // Backward Compatibility.
[615] Fix | Delete
],
[616] Fix | Delete
'title' => [
[617] Fix | Delete
'pum-title',
[618] Fix | Delete
'popmake-title', // Backward Compatibility.
[619] Fix | Delete
],
[620] Fix | Delete
'content' => [
[621] Fix | Delete
'pum-content',
[622] Fix | Delete
'popmake-content', // Backward Compatibility.
[623] Fix | Delete
],
[624] Fix | Delete
'close' => [
[625] Fix | Delete
'pum-close',
[626] Fix | Delete
'popmake-close', // Backward Compatibility.
[627] Fix | Delete
],
[628] Fix | Delete
];
[629] Fix | Delete
[630] Fix | Delete
$size = $this->get_setting( 'size', 'medium' );
[631] Fix | Delete
[632] Fix | Delete
if ( in_array( $size, [ 'nano', 'micro', 'tiny', 'small', 'medium', 'normal', 'large', 'xlarge' ], true ) ) {
[633] Fix | Delete
$classes['container'] = array_merge(
[634] Fix | Delete
$classes['container'],
[635] Fix | Delete
[
[636] Fix | Delete
'pum-responsive',
[637] Fix | Delete
'pum-responsive-' . $size,
[638] Fix | Delete
'responsive', // Backward Compatibility.
[639] Fix | Delete
'size-' . $size, // Backward Compatibility.
[640] Fix | Delete
]
[641] Fix | Delete
);
[642] Fix | Delete
} elseif ( 'custom' === $size ) {
[643] Fix | Delete
$classes['container'][] = 'size-custom'; // Backward Compatibility.
[644] Fix | Delete
}
[645] Fix | Delete
[646] Fix | Delete
if ( ! $this->get_setting( 'custom_height_auto' ) && $this->get_setting( 'scrollable_content' ) ) {
[647] Fix | Delete
$classes['container'] = array_merge(
[648] Fix | Delete
$classes['container'],
[649] Fix | Delete
[
[650] Fix | Delete
'pum-scrollable',
[651] Fix | Delete
'scrollable', // Backward Compatibility.
[652] Fix | Delete
]
[653] Fix | Delete
);
[654] Fix | Delete
}
[655] Fix | Delete
[656] Fix | Delete
if ( $this->get_setting( 'position_fixed' ) ) {
[657] Fix | Delete
$classes['container'][] = 'pum-position-fixed';
[658] Fix | Delete
}
[659] Fix | Delete
[660] Fix | Delete
if ( $this->get_setting( 'overlay_disabled' ) ) {
[661] Fix | Delete
$classes['overlay'][] = 'pum-overlay-disabled';
[662] Fix | Delete
}
[663] Fix | Delete
[664] Fix | Delete
if ( $this->get_setting( 'disable_accessibility' ) ) {
[665] Fix | Delete
$classes['overlay'][] = 'pum-accessibility-disabled';
[666] Fix | Delete
}
[667] Fix | Delete
[668] Fix | Delete
if ( $this->get_setting( 'close_on_overlay_click' ) ) {
[669] Fix | Delete
$classes['overlay'][] = 'pum-click-to-close';
[670] Fix | Delete
}
[671] Fix | Delete
[672] Fix | Delete
// Add a class for each trigger type.
[673] Fix | Delete
foreach ( $this->get_triggers() as $trigger ) {
[674] Fix | Delete
if ( ! in_array( $trigger['type'], $classes['overlay'], true ) ) {
[675] Fix | Delete
$classes['overlay'][] = $trigger['type'];
[676] Fix | Delete
}
[677] Fix | Delete
}
[678] Fix | Delete
[679] Fix | Delete
if ( is_singular( 'popup' ) ) {
[680] Fix | Delete
$classes['overlay'][] = 'pum-preview';
[681] Fix | Delete
}
[682] Fix | Delete
[683] Fix | Delete
$classes = apply_filters( 'pum_popup_classes', $classes, $this->ID );
[684] Fix | Delete
[685] Fix | Delete
if ( ! isset( $classes[ $element ] ) ) {
[686] Fix | Delete
$classes[ $element ] = [];
[687] Fix | Delete
}
[688] Fix | Delete
[689] Fix | Delete
return apply_filters( "pum_popup_{$element}_classes", $classes[ $element ], $this->ID );
[690] Fix | Delete
}
[691] Fix | Delete
[692] Fix | Delete
/**
[693] Fix | Delete
* Returns array for data attribute of this popup.
[694] Fix | Delete
*
[695] Fix | Delete
* @deprecated 1.8.0
[696] Fix | Delete
*
[697] Fix | Delete
* @return array|bool
[698] Fix | Delete
*/
[699] Fix | Delete
public function get_data_attr() {
[700] Fix | Delete
if ( $this->mock ) {
[701] Fix | Delete
return false;
[702] Fix | Delete
}
[703] Fix | Delete
[704] Fix | Delete
$data_attr = [
[705] Fix | Delete
'id' => $this->ID,
[706] Fix | Delete
'slug' => $this->post_name,
[707] Fix | Delete
'theme_id' => $this->get_theme_id(),
[708] Fix | Delete
'cookies' => $this->get_cookies(),
[709] Fix | Delete
'triggers' => $this->get_triggers(),
[710] Fix | Delete
'mobile_disabled' => $this->mobile_disabled() ? true : null,
[711] Fix | Delete
'tablet_disabled' => $this->tablet_disabled() ? true : null,
[712] Fix | Delete
'meta' => [
[713] Fix | Delete
'display' => $this->get_display(),
[714] Fix | Delete
'close' => $this->get_close(),
[715] Fix | Delete
// Added here for backward compatibility in extensions.
[716] Fix | Delete
'click_open' => popmake_get_popup_meta( 'click_open', $this->ID ),
[717] Fix | Delete
],
[718] Fix | Delete
];
[719] Fix | Delete
[720] Fix | Delete
// Pass conditions only if there are JS conditions.
[721] Fix | Delete
if ( $this->has_conditions( [ 'js_only' => true ] ) ) {
[722] Fix | Delete
$data_attr['conditions'] = $this->get_parsed_js_conditions();
[723] Fix | Delete
}
[724] Fix | Delete
[725] Fix | Delete
return apply_filters( 'pum_popup_data_attr', $data_attr, $this->ID );
[726] Fix | Delete
}
[727] Fix | Delete
[728] Fix | Delete
/**
[729] Fix | Delete
* Returns the close button text.
[730] Fix | Delete
*
[731] Fix | Delete
* @return string
[732] Fix | Delete
*/
[733] Fix | Delete
public function close_text() {
[734] Fix | Delete
$text = $this->get_setting( 'close_text', '×' );
[735] Fix | Delete
$theme_text = pum_get_theme_close_text( $this->get_theme_id() );
[736] Fix | Delete
[737] Fix | Delete
if ( empty( $text ) && ! empty( $theme_text ) ) {
[738] Fix | Delete
$text = $theme_text;
[739] Fix | Delete
}
[740] Fix | Delete
[741] Fix | Delete
return apply_filters( 'pum_popup_close_text', $text, $this->ID );
[742] Fix | Delete
}
[743] Fix | Delete
[744] Fix | Delete
/**
[745] Fix | Delete
* Returns true if the close button should be rendered.
[746] Fix | Delete
*
[747] Fix | Delete
* @uses apply_filters `pum_popup_show_close_button`
[748] Fix | Delete
*
[749] Fix | Delete
* @return bool
[750] Fix | Delete
*/
[751] Fix | Delete
public function show_close_button() {
[752] Fix | Delete
return (bool) apply_filters( 'pum_popup_show_close_button', true, $this->ID );
[753] Fix | Delete
}
[754] Fix | Delete
[755] Fix | Delete
/**
[756] Fix | Delete
* Placeholder in a series of changes to officially remove condition filtering.
[757] Fix | Delete
* This is a temporary method to allow for backwards compatibility.
[758] Fix | Delete
*
[759] Fix | Delete
* @since 1.16.13
[760] Fix | Delete
*
[761] Fix | Delete
* @param array $filters Array of condition filters.
[762] Fix | Delete
*
[763] Fix | Delete
* @return array
[764] Fix | Delete
*/
[765] Fix | Delete
public function get_conditions_with_filters( $filters = [ 'string' => false, 'string2' => true] ) {
[766] Fix | Delete
[767] Fix | Delete
$js_only = isset( $filters[ 'js_only'] ) && $filters[ 'js_only' ];
[768] Fix | Delete
$php_only = isset( $filters[ 'php_only'] ) && $filters[ 'php_only' ];
[769] Fix | Delete
[770] Fix | Delete
$conditions = $this->get_setting( 'conditions', [] );
[771] Fix | Delete
// Sanity Check on the values not operand value.
[772] Fix | Delete
foreach ( $conditions as $group_key => $group ) {
[773] Fix | Delete
foreach ( $group as $key => $condition ) {
[774] Fix | Delete
if (
[775] Fix | Delete
( $js_only && ! $this->is_js_condition( $condition ) ) ||
[776] Fix | Delete
( $php_only && $this->is_js_condition( $condition ) )
[777] Fix | Delete
) {
[778] Fix | Delete
unset( $conditions[ $group_key ][ $key ] );
[779] Fix | Delete
continue;
[780] Fix | Delete
}
[781] Fix | Delete
}
[782] Fix | Delete
[783] Fix | Delete
if ( empty( $conditions[ $group_key ] ) ) {
[784] Fix | Delete
unset( $conditions[ $group_key ] );
[785] Fix | Delete
continue;
[786] Fix | Delete
}
[787] Fix | Delete
}
[788] Fix | Delete
[789] Fix | Delete
return $conditions;
[790] Fix | Delete
}
[791] Fix | Delete
[792] Fix | Delete
/**
[793] Fix | Delete
* Get the popups conditions.
[794] Fix | Delete
*
[795] Fix | Delete
* @param boolean|string[] $filters Array of condition filters.
[796] Fix | Delete
*
[797] Fix | Delete
* @return array
[798] Fix | Delete
*/
[799] Fix | Delete
public function get_conditions( $filters = false ) {
[800] Fix | Delete
[801] Fix | Delete
// Backwards compatibility for old filters.
[802] Fix | Delete
$conditions = false === $filters ? $this->get_setting( 'conditions', [] ) : $this->get_conditions_with_filters( $filters );
[803] Fix | Delete
[804] Fix | Delete
foreach ( $conditions as $group_key => $group ) {
[805] Fix | Delete
foreach ( $group as $key => $condition ) {
[806] Fix | Delete
$conditions[ $group_key ][ $key ] = $this->parse_condition( $condition );
[807] Fix | Delete
}
[808] Fix | Delete
[809] Fix | Delete
if ( ! empty( $conditions[ $group_key ] ) ) {
[810] Fix | Delete
// Renumber each subarray.
[811] Fix | Delete
$conditions[ $group_key ] = array_values( $conditions[ $group_key ] );
[812] Fix | Delete
}
[813] Fix | Delete
}
[814] Fix | Delete
[815] Fix | Delete
// Renumber top arrays.
[816] Fix | Delete
$conditions = array_values( $conditions );
[817] Fix | Delete
[818] Fix | Delete
return apply_filters( 'pum_popup_get_conditions', $conditions, $this->ID, $filters );
[819] Fix | Delete
}
[820] Fix | Delete
[821] Fix | Delete
/**
[822] Fix | Delete
* Return a flattened list of conditions (no groups).
[823] Fix | Delete
*
[824] Fix | Delete
* @since 1.16.13
[825] Fix | Delete
*
[826] Fix | Delete
* @param boolean|string[] $filters Array of condition filters.
[827] Fix | Delete
*
[828] Fix | Delete
* @return array
[829] Fix | Delete
*/
[830] Fix | Delete
public function get_conditions_list( $filters = false ) {
[831] Fix | Delete
$conditions = $this->get_conditions( $filters );
[832] Fix | Delete
[833] Fix | Delete
$conditions_list = [];
[834] Fix | Delete
[835] Fix | Delete
foreach ( $conditions as $group ) {
[836] Fix | Delete
foreach ( $group as $condition ) {
[837] Fix | Delete
$conditions_list[] = $condition;
[838] Fix | Delete
}
[839] Fix | Delete
}
[840] Fix | Delete
[841] Fix | Delete
return $conditions_list;
[842] Fix | Delete
}
[843] Fix | Delete
[844] Fix | Delete
/**
[845] Fix | Delete
* Ensures condition data integrity.
[846] Fix | Delete
*
[847] Fix | Delete
* @param array $condition Condition.
[848] Fix | Delete
*
[849] Fix | Delete
* @return array
[850] Fix | Delete
*/
[851] Fix | Delete
public function parse_condition( $condition ) {
[852] Fix | Delete
$condition = wp_parse_args(
[853] Fix | Delete
$condition,
[854] Fix | Delete
[
[855] Fix | Delete
'target' => '',
[856] Fix | Delete
'not_operand' => false,
[857] Fix | Delete
'settings' => [],
[858] Fix | Delete
]
[859] Fix | Delete
);
[860] Fix | Delete
[861] Fix | Delete
$condition['not_operand'] = (bool) $condition['not_operand'];
[862] Fix | Delete
[863] Fix | Delete
/** Backward compatibility layer */
[864] Fix | Delete
foreach ( $condition['settings'] as $key => $value ) {
[865] Fix | Delete
$condition[ $key ] = $value;
[866] Fix | Delete
}
[867] Fix | Delete
[868] Fix | Delete
// The not operand value is missing, set it to false.
[869] Fix | Delete
return $condition;
[870] Fix | Delete
}
[871] Fix | Delete
[872] Fix | Delete
/**
[873] Fix | Delete
* Checks if this popup has any conditions.
[874] Fix | Delete
*
[875] Fix | Delete
* @param false|string[] $filters Array of filters to use.
[876] Fix | Delete
*
[877] Fix | Delete
* @return bool
[878] Fix | Delete
*/
[879] Fix | Delete
public function has_conditions( $filters = false ) {
[880] Fix | Delete
return (bool) count( $this->get_conditions( $filters ) );
[881] Fix | Delete
}
[882] Fix | Delete
[883] Fix | Delete
/**
[884] Fix | Delete
* Checks if the popup has a specific condition.
[885] Fix | Delete
*
[886] Fix | Delete
* Generally used for conditional asset loading.
[887] Fix | Delete
*
[888] Fix | Delete
* @param string[]|string $conditions Array of condition to check for.
[889] Fix | Delete
*
[890] Fix | Delete
* @return bool
[891] Fix | Delete
*/
[892] Fix | Delete
public function has_condition( $conditions ) {
[893] Fix | Delete
[894] Fix | Delete
if ( ! $this->has_conditions() ) {
[895] Fix | Delete
return false;
[896] Fix | Delete
}
[897] Fix | Delete
[898] Fix | Delete
$found = false;
[899] Fix | Delete
[900] Fix | Delete
if ( ! is_array( $conditions ) ) {
[901] Fix | Delete
$conditions = [ $conditions ];
[902] Fix | Delete
}
[903] Fix | Delete
[904] Fix | Delete
foreach ( $this->get_conditions() as $group ) {
[905] Fix | Delete
[906] Fix | Delete
foreach ( $group as $condition ) {
[907] Fix | Delete
[908] Fix | Delete
if ( in_array( $condition['target'], $conditions, true ) ) {
[909] Fix | Delete
$found = true;
[910] Fix | Delete
}
[911] Fix | Delete
}
[912] Fix | Delete
}
[913] Fix | Delete
[914] Fix | Delete
return (bool) $found;
[915] Fix | Delete
}
[916] Fix | Delete
[917] Fix | Delete
/**
[918] Fix | Delete
* Retrieves the 'enabled' meta key and returns true if popup is enabled
[919] Fix | Delete
*
[920] Fix | Delete
* @since 1.12
[921] Fix | Delete
* @return bool True if enabled
[922] Fix | Delete
*/
[923] Fix | Delete
public function is_enabled() {
[924] Fix | Delete
$enabled = $this->get_meta( 'enabled' );
[925] Fix | Delete
[926] Fix | Delete
// Post ID not valid.
[927] Fix | Delete
if ( false === $enabled ) {
[928] Fix | Delete
return false;
[929] Fix | Delete
}
[930] Fix | Delete
[931] Fix | Delete
// If the key is missing...
[932] Fix | Delete
if ( '' === $enabled ) {
[933] Fix | Delete
// Set it to enabled.
[934] Fix | Delete
$enabled = 1;
[935] Fix | Delete
$this->update_meta( 'enabled', $enabled );
[936] Fix | Delete
} else {
[937] Fix | Delete
// Else, load it in.
[938] Fix | Delete
$enabled = intval( $enabled );
[939] Fix | Delete
if ( ! in_array( $enabled, [ 0, 1 ], true ) ) {
[940] Fix | Delete
$enabled = 1;
[941] Fix | Delete
}
[942] Fix | Delete
}
[943] Fix | Delete
if ( 1 === $enabled ) {
[944] Fix | Delete
return true;
[945] Fix | Delete
} else {
[946] Fix | Delete
return false;
[947] Fix | Delete
}
[948] Fix | Delete
}
[949] Fix | Delete
[950] Fix | Delete
/**
[951] Fix | Delete
* Returns whether or not the popup is visible in the loop.
[952] Fix | Delete
*
[953] Fix | Delete
* @return bool
[954] Fix | Delete
*/
[955] Fix | Delete
public function is_loadable() {
[956] Fix | Delete
[957] Fix | Delete
// Loadable defaults to true if no conditions. Making the popup available everywhere.
[958] Fix | Delete
$loadable = true;
[959] Fix | Delete
[960] Fix | Delete
if ( ! $this->ID ) {
[961] Fix | Delete
return false;
[962] Fix | Delete
// Published/private.
[963] Fix | Delete
}
[964] Fix | Delete
[965] Fix | Delete
// If popup is not enabled, this popup is not loadable.
[966] Fix | Delete
if ( ! $this->is_enabled() ) {
[967] Fix | Delete
return false;
[968] Fix | Delete
}
[969] Fix | Delete
[970] Fix | Delete
if ( $this->has_conditions() ) {
[971] Fix | Delete
[972] Fix | Delete
// All Groups Must Return True. Break if any is false and set $loadable to false.
[973] Fix | Delete
foreach ( $this->get_conditions() as $group => $conditions ) {
[974] Fix | Delete
[975] Fix | Delete
// Groups are false until a condition proves true.
[976] Fix | Delete
$group_check = false;
[977] Fix | Delete
[978] Fix | Delete
// At least one group condition must be true. Break this loop if any condition is true.
[979] Fix | Delete
foreach ( $conditions as $condition ) {
[980] Fix | Delete
[981] Fix | Delete
// If this is JS condition, popup must load to check it later. Group can't be known false til then.
[982] Fix | Delete
if ( $this->is_js_condition( $condition ) ) {
[983] Fix | Delete
$group_check = true;
[984] Fix | Delete
break;
[985] Fix | Delete
}
[986] Fix | Delete
[987] Fix | Delete
// If any condition passes, set $group_check true and break.
[988] Fix | Delete
if ( ! $condition['not_operand'] && $this->check_condition( $condition ) ) {
[989] Fix | Delete
$group_check = true;
[990] Fix | Delete
break;
[991] Fix | Delete
} elseif ( $condition['not_operand'] && ! $this->check_condition( $condition ) ) {
[992] Fix | Delete
$group_check = true;
[993] Fix | Delete
break;
[994] Fix | Delete
}
[995] Fix | Delete
}
[996] Fix | Delete
[997] Fix | Delete
// If any group of conditions doesn't pass, popup is not loadable.
[998] Fix | Delete
if ( ! $group_check ) {
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function