{$key_or_property}, $default_value); } else { return blocksy_akg($keys, $array_or_object[$key_or_property], $default_value); } } else { if ($is_object) { return $array_or_object->{$key_or_property}; } else { return $array_or_object[ $key_or_property ]; } } } } function blocksy_akg_or_customizer($key, $source, $default = null) { $source = wp_parse_args( $source, [ 'prefix' => '', // customizer | array 'strategy' => 'customizer', ] ); if ($source['strategy'] !== 'customizer' && !is_array($source['strategy'])) { throw new Error( 'strategy wrong value provided. Array or customizer is required.' ); } if (! empty($source['prefix'])) { $source['prefix'] .= '_'; } if ($source['strategy'] === 'customizer') { return blocksy_get_theme_mod($source['prefix'] . $key, $default); } return blocksy_akg($source['prefix'] . $key, $source['strategy'], $default); } // When adding new migration, also implement same key in: // - static/js/options/containers/MigrateValues.js function blocksy_migrate_values($values, $args = []) { $args = wp_parse_args($args, [ 'migrations' => [] ]); $new_value = $values; foreach ($args['migrations'] as $migration) { if ($migration === 'popups_new_close_actions') { if ( isset($new_value['close_button_type']) && $new_value['close_button_type'] === 'none' ) { $new_value['close_button_type'] = 'outside'; $new_value['popup_close_button'] = 'no'; } if (isset($new_value['popup_additional_close_strategy'])) { $new_value['popup_custom_close'] = 'yes'; $new_value['popup_custom_close_strategy'] = $new_value['popup_additional_close_strategy']; if (isset($new_value['aditional_close_button_click_selector'])) { $new_value['popup_custom_close_button_selector'] = $new_value['aditional_close_button_click_selector']; } if (isset($new_value['popup_additional_close_submit_delay'])) { $new_value['popup_custom_close_action_delay'] = $new_value['popup_additional_close_submit_delay']; } unset($new_value['popup_additional_close_strategy']); unset($new_value['aditional_close_button_click_selector']); unset($new_value['popup_additional_close_submit_delay']); } } } return $new_value; }