if(!defined('ABSPATH')){ exit; } /** * acfe_deprecated_function * * @param $function * @param $version * @param $replacement */ function acfe_deprecated_function($function, $version, $replacement = ''){ acfe_trigger_error('Function', $function, $version, $replacement); } /** * acfe_deprecated_setting * * @param $setting * @param $version * @param $replacement */ function acfe_deprecated_setting($setting, $version, $replacement = ''){ acfe_trigger_error('Setting', $setting, $version, $replacement); } /** * acfe_deprecated_constant * * @param $constant * @param $version * @param $replacement */ function acfe_deprecated_constant($constant, $version, $replacement = ''){ acfe_trigger_error('Constant', $constant, $version, $replacement); } /** * acfe_deprecated_hook * * @param $hook * @param $version * @param $replacement */ function acfe_deprecated_hook($hook, $version, $replacement = ''){ acfe_trigger_error('Hook', $hook, $version, $replacement); } /** * acfe_apply_filters_deprecated * * @param $hook * @param $args * @param $version * @param $replacement * * @return mixed */ function acfe_apply_filters_deprecated($hook, $args, $version, $replacement = ''){ if(!has_filter($hook)){ return $args[0]; } acfe_deprecated_hook($hook, $version, $replacement); return apply_filters_ref_array($hook, $args); } /** * acfe_do_action_deprecated * * @param $hook * @param $args * @param $version * @param $replacement */ function acfe_do_action_deprecated($hook, $args, $version, $replacement = ''){ if(!has_action($hook)){ return; } acfe_deprecated_hook($hook, $version, $replacement); do_action_ref_array($hook, $args); } /** * acfe_trigger_error * * @param $label * @param $function * @param $version * @param $replacement */ function acfe_trigger_error($label, $function, $version, $replacement = ''){ do_action('deprecated_function_run', $function, $replacement, $version); if(WP_DEBUG && apply_filters('deprecated_function_trigger_error', true)){ if($replacement){ $message = 'ACF Extended: ' . $label . ' ' . sprintf(__('%1$s is deprecated since version %2$s! Use %3$s instead.'), $function, $version, $replacement); }else{ $message = 'ACF Extended: ' . $label . ' ' . sprintf(__('%1$s is deprecated since version %2$s with no alternative available.'), $function, $version); } // trigger error trigger_error($message, E_USER_DEPRECATED); } }/*! elementor-pro - v3.30.0 - 01-07-2025 */ *[data-editable-elementor-document] { position: relative; } *[data-editable-elementor-document]:before, *[data-editable-elementor-document]:after { content: ""; display: table; } *[data-editable-elementor-document] .elementor-document-handle { position: absolute; z-index: 2147483620; cursor: pointer; inset: 0; display: none; border: 2px solid var(--e-a-color-primary, #F3BAFD); } *[data-editable-elementor-document] .elementor-document-handle:before { content: ""; position: absolute; background: var(--e-a-color-primary, #F3BAFD); opacity: 0.3; inset: 0; } *[data-editable-elementor-document] .elementor-document-handle__inner { display: none; align-items: center; position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: var(--e-a-color-primary, #F3BAFD); padding: 8px 16px; font-family: Roboto, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 14px; color: var(--e-p-border-global-invert, #0C0D0E); gap: 8px; border-radius: 0 0 3px 3px; } *[data-editable-elementor-document] .elementor-document-handle__inner:before, *[data-editable-elementor-document] .elementor-document-handle__inner:after { content: ""; position: absolute; border: solid transparent; } *[data-editable-elementor-document] .elementor-document-handle__inner:before { right: calc(100% - 1px); border-inline-end-color: var(--e-a-color-primary, #F3BAFD); border-width: 0 14px 30px 0; } *[data-editable-elementor-document] .elementor-document-handle__inner:after { left: calc(100% - 1px); border-inline-start-color: var(--e-a-color-primary, #F3BAFD); border-width: 0 0 30px 14px; } *[data-editable-elementor-document].e-embedded-document-active .elementor-document-handle:not(.elementor-document-save-back-handle), *[data-editable-elementor-document].elementor-widget-container .elementor-document-handle:not(.elementor-document-save-back-handle) { bottom: unset; border-block-end: unset; } *[data-editable-elementor-document].e-embedded-document-active .elementor-document-handle:not(.elementor-document-save-back-handle)::before, *[data-editable-elementor-document].elementor-widget-container .elementor-document-handle:not(.elementor-document-save-back-handle)::before { display: none; bottom: unset; } .elementor-editor-active *[data-editable-elementor-document]:not(.elementor-edit-mode):hover .elementor-document-handle:not(.elementor-document-save-back-handle) { display: block; } .elementor-editor-active *[data-editable-elementor-document]:not(.elementor-edit-mode):hover .elementor-document-handle:not(.elementor-document-save-back-handle)::before { display: block; } .elementor-editor-active *[data-editable-elementor-document]:not(.elementor-edit-mode):hover .elementor-document-handle:not(.elementor-document-save-back-handle) .elementor-document-handle__inner { display: flex; } .elementor-editor-active *[data-editable-elementor-document].loading { opacity: 0.5; } .elementor-editor-active *[data-editable-elementor-document][data-elementor-type=single] > .elementor-document-handle { transform: translateX(-50%) translateY(-100%); border-radius: 3px 3px 0 0; } .elementor-editor-active *[data-editable-elementor-document][data-elementor-type=single] > .elementor-document-handle:before { border-width: 30px 14px 0 0; } .elementor-editor-active *[data-editable-elementor-document][data-elementor-type=single] > .elementor-document-handle:after { border-width: 30px 0 0 14px; } [data-elementor-post-type=elementor_library] > .elementor-document-handle { border: 2px solid var(--e-p-border-global, #5EEAD4); } [data-elementor-post-type=elementor_library] > .elementor-document-handle:before { background-color: var(--e-p-border-global, #5EEAD4); } [data-elementor-post-type=elementor_library] > .elementor-document-handle .elementor-document-handle__inner { background-color: var(--e-p-border-global, #5EEAD4); } [data-elementor-post-type=elementor_library] > .elementor-document-handle .elementor-document-handle__inner:before { border-inline-end-color: var(--e-p-border-global, #5EEAD4); } [data-elementor-post-type=elementor_library] > .elementor-document-handle .elementor-document-handle__inner:after { border-inline-start-color: var(--e-p-border-global, #5EEAD4); } .elementor-widget.elementor-sticky--effects .elementor-editor-widget-settings { right: -14px; } .elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover { outline: 1px solid var(--e-p-border-global); } .elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget.elementor-element-editable, .elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget.elementor-element-editable:hover { box-shadow: 0 0 0 2px var(--e-p-border-global); } .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings { background-color: var(--e-p-border-global); } .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting { background-color: var(--e-p-border-global); color: var(--e-p-border-global-invert); } .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover { background-color: var(--e-p-border-global-hover); } .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save { display: none; } .elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty) + #elementor-add-new-section { display: none; } .elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-element-overlay, .elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-empty, .elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-add-section, .elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-add-section-inline, .elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-empty-view, .elementor-editor-preview .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-widget-empty { display: initial; } .elementor.elementor-edit-area-active .elementor-document-handle.elementor-document-save-back-handle { display: block; bottom: unset; border: unset; } .elementor.elementor-edit-area-active .elementor-document-handle.elementor-document-save-back-handle:before { display: none; } .elementor.elementor-edit-area-active .elementor-document-handle.elementor-document-save-back-handle > .elementor-document-handle__inner { display: flex; opacity: 1; } .elementor-document-handle.elementor-document-save-back-handle .elementor-document-handle__inner { transform: translateX(-50%) translateY(-100%); border-radius: 3px 3px 0 0; } .elementor-document-handle.elementor-document-save-back-handle .elementor-document-handle__inner:before { border-width: 30px 14px 0 0; } .elementor-document-handle.elementor-document-save-back-handle .elementor-document-handle__inner:after { border-width: 30px 0 0 14px; } .elementor-document-handle.elementor-document-save-back-handle .eicon-arrow-left, .elementor-document-handle.elementor-document-save-back-handle .eicon-arrow-right { margin-inline-end: 5px; } .elementor-loop-container > div.elementor-edit-area-active:first-of-type { border: 2px solid #5EEAD4; } div[class*=elementor-widget-loop] .elementor-edit-area-active[data-editable-elementor-document], div[class*=elementor-widget-loop] .elementor-edit-area-active.swiper-slide-active, div[class*=elementor-widget-loop] .elementor-edit-area-active.e-loop-first-edit:first-of-type { border: 2px solid #5EEAD4; } div[class*=elementor-widget-loop] .elementor-edit-area-active .elementor-document-save-back-handle { display: flex; line-height: initial; white-space: nowrap; } div[class*=elementor-widget-loop] #elementor-add-new-section { margin: 30px auto; } div[class*=elementor-widget-loop] .elementor-add-section-inner { padding: 15px 0; } .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-section-wrap { /* Overwrite the 25px min-height from the default .elementor-section-wrap:empty, as this causes unnecessary white space between the "Drag widget here" box and the document handles for in-place editing, making it look like this area is not vertically aligned on a new empty state. */ } .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-section-wrap:not(:empty) + #elementor-add-new-section { display: none; } .elementor-edit-area-active[data-elementor-type=loop-item] .elementor-section-wrap:empty { min-height: 0; } .elementor-editor-active [class*=elementor-widget-loop] .elementor:not([data-editable-elementor-document]):not(.e-loop-alternate-template):hover { box-shadow: initial; } .elementor-editor-active [class*=elementor-widget-loop]:hover .elementor-document-handle:not(.elementor-document-save-back-handle) { display: flex; line-height: initial; white-space: nowrap; } .elementor-editor-active [class*=elementor-widget-loop]:hover .elementor-document-handle:not(.elementor-document-save-back-handle)::before { display: block; } .elementor-editor-active [class*=elementor-widget-loop]:hover .elementor-document-handle:not(.elementor-document-save-back-handle) .elementor-document-handle__inner { display: flex; } .elementor-editor-active [class*=elementor-widget-loop]:hover .e-loop-alternate-template { box-shadow: 0 0 0 1px #9DA5AE; } .e-loop-template-canvas { display: flex; align-items: center; justify-content: center; min-height: 100vh; } .e-loop-template-canvas [data-elementor-type=loop-item].e-loop-item { max-width: var(--preview-width, 410px); width: var(--preview-width, 410px); } .e-loop-template-canvas [data-elementor-type=loop-item].e-loop-item #elementor-add-new-section { width: var(--preview-width, 410px); } /*# sourceMappingURL=preview-rtl.css.map *//*! elementor-pro - v3.4.1 - 01-09-2021 */ .elementor-document-handle { display: none; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: absolute; z-index: 100; top: 0; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); background-color: #fcb92c; padding: 5px 10px; font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; font-size: 11px; color: #fff; border-radius: 0 0 3px 3px; cursor: pointer; } .elementor-document-handle:before, .elementor-document-handle:after { content: ''; position: absolute; border: solid transparent; } .elementor-document-handle:before { right: calc(100% - 1px); border-right-color: #fcb92c; border-width: 0 14px 23px 0; } .elementor-document-handle:after { left: calc(100% - 1px); border-left-color: #fcb92c; border-width: 0 0 23px 14px; } .elementor-document-handle .eicon-edit { margin-left: 5px; } .elementor-editor-active .elementor { position: relative; } .elementor-editor-active .elementor:not(.elementor-edit-mode):hover { -webkit-box-shadow: 0 0 0 1px #fcb92c; box-shadow: 0 0 0 1px #fcb92c; } .elementor-editor-active .elementor:not(.elementor-edit-mode):hover .elementor-document-handle { display: -webkit-box; display: -ms-flexbox; display: flex; line-height: initial; } .elementor-editor-active .elementor.loading { opacity: 0.5; } .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle { -webkit-transform: translateX(-50%) translateY(-100%); -ms-transform: translateX(-50%) translateY(-100%); transform: translateX(-50%) translateY(-100%); border-radius: 3px 3px 0 0; } .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:before { border-width: 23px 14px 0 0; } .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:after { border-width: 23px 0 0 14px; } .elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty) + #elementor-add-new-section { display: none; } /*# sourceMappingURL=preview-rtl.css.map */
if(!defined('ABSPATH')){ exit; } /** * get_flexible * * Helper for the Flexible Content: Dynamic Render * * @param string $selector * @param false $post_id * * @return false|string */ if(!function_exists('get_flexible')){ function get_flexible($selector, $post_id = false){ // Bail early if(!have_rows($selector, $post_id)){ return false; } // Vars $flexible = acf_get_field_type('flexible_content'); ob_start(); while(have_rows($selector, $post_id)): the_row(); // Vars $loop = acf_get_loop('active'); $field = $loop['field']; // Bail early if not Flexible Content if($field['type'] !== 'flexible_content'){ break; } $loop_i = acf_get_loop('active', 'i'); $layout = $flexible->get_layout(get_row_layout(), $field); // First row if($loop_i === 0){ // Global global $is_preview; // Vars if(!isset($is_preview)){ $is_preview = false; } // Render: Global Enqueue acfe_flexible_render_enqueue($field); } // Render: Layout Enqueue acfe_flexible_render_layout_enqueue($layout, $field); // Render: Layout Template acfe_flexible_render_layout_template($layout, $field); endwhile; return ob_get_clean(); } } /** * the_flexible * * Helper for the Flexible Content: Dynamic Render * * @param $selector * @param false $post_id */ if(!function_exists('the_flexible')){ function the_flexible($selector, $post_id = false){ echo get_flexible($selector, $post_id); } } /** * has_flexible * * Helper for the Flexible Content: Dynamic Render * * @param $selector * @param false $post_id * * @return bool */ if(!function_exists('has_flexible')){ function has_flexible($selector, $post_id = false){ return have_rows($selector, $post_id); } } /** * acfe_flexible_render_layout_template * * Find & include the Flexible Content Layouts PHP files * * @param $layout * @param $field */ function acfe_flexible_render_layout_template($layout, $field){ // Global global $is_preview, $col, $post; // allow $post to be used in the template $col = false; // Vars $name = $field['_name']; $key = $field['key']; $l_name = $layout['name']; // File $file = acf_maybe_get($layout, 'acfe_flexible_render_template'); // Filters $file = apply_filters("acfe/flexible/render/template", $file, $field, $layout, $is_preview); $file = apply_filters("acfe/flexible/render/template/name={$name}", $file, $field, $layout, $is_preview); $file = apply_filters("acfe/flexible/render/template/key={$key}", $file, $field, $layout, $is_preview); $file = apply_filters("acfe/flexible/render/template/layout={$l_name}", $file, $field, $layout, $is_preview); $file = apply_filters("acfe/flexible/render/template/name={$name}&layout={$l_name}", $file, $field, $layout, $is_preview); $file = apply_filters("acfe/flexible/render/template/key={$key}&layout={$l_name}", $file, $field, $layout, $is_preview); // Deprecated $file = apply_filters_deprecated("acfe/flexible/layout/render/template/layout={$l_name}", array($file, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/template/layout={$l_name}"); $file = apply_filters_deprecated("acfe/flexible/layout/render/template/name={$name}&layout={$l_name}", array($file, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/template/name={$name}&layout={$l_name}"); $file = apply_filters_deprecated("acfe/flexible/layout/render/template/key={$key}&layout={$l_name}", array($file, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/template/key={$key}&layout={$l_name}"); // Before Template do_action("acfe/flexible/render/before_template", $field, $layout, $is_preview); // Check file if(!empty($file)){ $file_found = acfe_locate_file_path($file); if(!empty($file_found)){ // Front-end if(!$is_preview){ // Include include($file_found); // Preview }else{ $path = pathinfo($file); $extension = $path['extension']; $file_preview = substr($file, 0, -strlen($extension)-1); $file_preview .= '-preview.' . $extension; $file_preview = acfe_locate_file_path($file_preview); // Include if(!empty($file_preview)){ include($file_preview); }else{ include($file_found); } } } } // After Template do_action("acfe/flexible/render/after_template", $field, $layout, $is_preview); } add_action('acfe/flexible/render/before_template', '_acfe_flexible_render_layout_template_before', 10, 3); function _acfe_flexible_render_layout_template_before($field, $layout, $is_preview){ // vars $name = $field['_name']; $key = $field['key']; $l_name = $layout['name']; // variations do_action("acfe/flexible/render/before_template/name={$name}", $field, $layout, $is_preview); do_action("acfe/flexible/render/before_template/key={$key}", $field, $layout, $is_preview); do_action("acfe/flexible/render/before_template/layout={$l_name}", $field, $layout, $is_preview); do_action("acfe/flexible/render/before_template/name={$name}&layout={$l_name}", $field, $layout, $is_preview); do_action("acfe/flexible/render/before_template/key={$key}&layout={$l_name}", $field, $layout, $is_preview); // deprecated do_action_deprecated("acfe/flexible/layout/render/before_template/layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/before_template/layout={$l_name}"); do_action_deprecated("acfe/flexible/layout/render/before_template/name={$name}&layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/before_template/name={$name}&layout={$l_name}"); do_action_deprecated("acfe/flexible/layout/render/before_template/key={$key}&layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/before_template/key={$key}&layout={$l_name}"); } add_action('acfe/flexible/render/after_template', '_acfe_flexible_render_layout_template_after', 10, 3); function _acfe_flexible_render_layout_template_after($field, $layout, $is_preview){ // vars $name = $field['_name']; $key = $field['key']; $l_name = $layout['name']; // variations do_action("acfe/flexible/render/after_template/name={$name}", $field, $layout, $is_preview); do_action("acfe/flexible/render/after_template/key={$key}", $field, $layout, $is_preview); do_action("acfe/flexible/render/after_template/layout={$l_name}", $field, $layout, $is_preview); do_action("acfe/flexible/render/after_template/name={$name}&layout={$l_name}", $field, $layout, $is_preview); do_action("acfe/flexible/render/after_template/key={$key}&layout={$l_name}", $field, $layout, $is_preview); // deprecated do_action_deprecated("acfe/flexible/layout/render/after_template/layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/after_template/layout={$l_name}"); do_action_deprecated("acfe/flexible/layout/render/after_template/name={$name}&layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/after_template/name={$name}&layout={$l_name}"); do_action_deprecated("acfe/flexible/layout/render/after_template/key={$key}&layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/after_template/key={$key}&layout={$l_name}"); } /** * acfe_flexible_render_enqueue * * Enqueue global scripts & styles for the Flexible Content * * @param $field */ function acfe_flexible_render_enqueue($field){ // global global $is_preview; // actions do_action("acfe/flexible/enqueue", $field, $is_preview); do_action("acfe/flexible/enqueue/name={$field['_name']}", $field, $is_preview); do_action("acfe/flexible/enqueue/key={$field['key']}", $field, $is_preview); } /** * acfe_flexible_render_layout_enqueue * * Find & Enqueue Scripts & Styles files for the Flexible Content * * @param $layout * @param $field */ function acfe_flexible_render_layout_enqueue($layout, $field){ // Global global $is_preview; // Vars $name = $field['_name']; $key = $field['key']; $l_name = $layout['name']; $handle = acf_slugify($name) . '-layout-' . acf_slugify($l_name); // Files $style = acf_maybe_get($layout, 'acfe_flexible_render_style'); $script = acf_maybe_get($layout, 'acfe_flexible_render_script'); /** * Actions */ do_action("acfe/flexible/enqueue/layout={$l_name}", $field, $layout, $is_preview); do_action("acfe/flexible/enqueue/name={$name}&layout={$l_name}", $field, $layout, $is_preview); do_action("acfe/flexible/enqueue/key={$key}&layout={$l_name}", $field, $layout, $is_preview); // Deprecated do_action_deprecated("acfe/flexible/layout/enqueue/layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/enqueue/layout={$l_name}"); do_action_deprecated("acfe/flexible/layout/enqueue/name={$name}&layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/enqueue/name={$name}&layout={$l_name}"); do_action_deprecated("acfe/flexible/layout/enqueue/key={$key}&layout={$l_name}", array($field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/enqueue/key={$key}&layout={$l_name}"); /** * Style */ $style = apply_filters("acfe/flexible/render/style", $style, $field, $layout, $is_preview); $style = apply_filters("acfe/flexible/render/style/name={$name}", $style, $field, $layout, $is_preview); $style = apply_filters("acfe/flexible/render/style/key={$key}", $style, $field, $layout, $is_preview); $style = apply_filters("acfe/flexible/render/style/layout={$l_name}", $style, $field, $layout, $is_preview); $style = apply_filters("acfe/flexible/render/style/name={$name}&layout={$l_name}", $style, $field, $layout, $is_preview); $style = apply_filters("acfe/flexible/render/style/key={$key}&layout={$l_name}", $style, $field, $layout, $is_preview); // Deprecated $style = apply_filters_deprecated("acfe/flexible/layout/render/style/layout={$l_name}", array($style, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/style/layout={$l_name}"); $style = apply_filters_deprecated("acfe/flexible/layout/render/style/name={$name}&layout={$l_name}", array($style, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/style/name={$name}&layout={$l_name}"); $style = apply_filters_deprecated("acfe/flexible/layout/render/style/key={$key}&layout={$l_name}", array($style, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/style/key={$key}&layout={$l_name}"); // Check if(!empty($style)){ // convert to array if(is_string($style)){ $style = array( 'src' => $style, ); } // defaults args $style = wp_parse_args($style, array( 'handle' => $handle, 'src' => '', 'deps' => array(), 'ver' => false, 'media' => 'all', )); // src url starts with current domain // remove it and let acfe_locate_file_url() handle it if(stripos($style['src'], home_url()) === 0){ $style['src'] = str_replace(home_url(), '', $style['src']); } // clone for front-end $style_front = $style; // locate src $style_front['src'] = acfe_locate_file_url($style_front['src']); // enqueue front-end + preview if(!empty($style_front['src'])){ wp_enqueue_style($style_front['handle'], $style_front['src'], $style_front['deps'], $style_front['ver'], $style_front['media']); } // preview mode // make sure the src is not a distant url if($is_preview && stripos($style['src'], 'http://') !== 0 && stripos($style['src'], 'https://') !== 0 && stripos($style['src'], '//') !== 0){ // clone for preview $style_preview = $style; // retrieve extension $path = pathinfo($style_preview['src']); $extension = $path['extension']; // append "-preview" to src $style_preview['src'] = substr($style_preview['src'], 0, -strlen($extension)-1); $style_preview['src'] .= '-preview.' . $extension; // locate src $style_preview['src'] = acfe_locate_file_url($style_preview['src']); // append "-preview" to handle $style_preview['handle'] = "{$style_preview['handle']}-preview"; // enqueue preview if(!empty($style_preview['src'])){ wp_enqueue_style($style_preview['handle'], $style_preview['src'], $style_preview['deps'], $style_preview['ver'], $style_preview['media']); } } } /** * Script */ $script = apply_filters("acfe/flexible/render/script", $script, $field, $layout, $is_preview); $script = apply_filters("acfe/flexible/render/script/name={$name}", $script, $field, $layout, $is_preview); $script = apply_filters("acfe/flexible/render/script/key={$key}", $script, $field, $layout, $is_preview); $script = apply_filters("acfe/flexible/render/script/layout={$l_name}", $script, $field, $layout, $is_preview); $script = apply_filters("acfe/flexible/render/script/name={$name}&layout={$l_name}", $script, $field, $layout, $is_preview); $script = apply_filters("acfe/flexible/render/script/key={$key}&layout={$l_name}", $script, $field, $layout, $is_preview); // Deprecated $script = apply_filters_deprecated("acfe/flexible/layout/render/script/layout={$l_name}", array($script, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/script/layout={$l_name}"); $script = apply_filters_deprecated("acfe/flexible/layout/render/script/name={$name}&layout={$l_name}", array($script, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/script/name={$name}&layout={$l_name}"); $script = apply_filters_deprecated("acfe/flexible/layout/render/script/key={$key}&layout={$l_name}", array($script, $field, $layout, $is_preview), '0.8.6.7', "acfe/flexible/render/script/key={$key}&layout={$l_name}"); // Check if(!empty($script)){ // convert to array if(is_string($script)){ $script = array( 'src' => $script, ); } // defaults args $script = wp_parse_args($script, array( 'handle' => $handle, 'src' => '', 'deps' => array(), 'ver' => false, 'args' => true, )); // src url starts with current domain // remove it and let acfe_locate_file_url() handle it if(stripos($script['src'], home_url()) === 0){ $script['src'] = str_replace(home_url(), '', $script['src']); } // clone for front-end $script_front = $script; // locate $script_front['src'] = acfe_locate_file_url($script_front['src']); // front-end with distant script if(!$is_preview || (stripos($script['src'], 'http://') === 0 || stripos($script['src'], 'https://') === 0 || stripos($script['src'], '//') === 0)){ if(!empty($script_front['src'])){ wp_enqueue_script($script_front['handle'], $script_front['src'], $script_front['deps'], $script_front['ver'], $script_front['args']); } // front-end/preview with local script }else{ // clone for preview $script_preview = $script; // retrieve extension $path = pathinfo($script_preview['src']); $extension = $path['extension']; // append "-preview" to src $script_preview['src'] = substr($script_preview['src'], 0, -strlen($extension)-1); $script_preview['src'] .= '-preview.' . $extension; // locate src $script_preview['src'] = acfe_locate_file_url($script_preview['src']); // append "-preview" to handle $script_preview['handle'] = "{$script_preview['handle']}-preview"; // enqueue preview if(!empty($script_preview['src'])){ wp_enqueue_script($script_preview['handle'], $script_preview['src'], $script_preview['deps'], $script_preview['ver'], $script_preview['args']); // enqueue front-end }elseif(!empty($script_front['src'])){ wp_enqueue_script($script_front['handle'], $script_front['src'], $script_front['deps'], $script_front['ver'], $script_front['args']); } } } } /** * have_settings * * While loop function for the Flexible Content: Settings Modal feature * * @return bool */ if(!function_exists('have_settings')){ function have_settings(){ return have_rows('layout_settings'); } } /** * the_setting * * Setup data for the Flexible Content: Settings Modal loop * * @return false|mixed */ if(!function_exists('the_setting')){ function the_setting(){ return the_row(); } } /** * have_archive * * While loop function for the Dynamic Post Type: Archive Page feature * * @param false $_post_type * * @return bool */ if(!function_exists('have_archive')){ function have_archive($post_type = false){ global $acfe_archive_i, $acfe_archive_post_type; $acfe_archive_post_type = false; if(!isset($acfe_archive_i) || $acfe_archive_i === 0){ $acfe_archive_i = 0; if(!$post_type){ // try get_post_type() $post_type = get_post_type(); if(!$post_type){ // try get_queried_object() $object = get_queried_object(); if(is_a($object, 'WP_Post_Type') && property_exists($object, 'has_archive')){ $post_type = $object->name; } } } if(!$post_type){ return false; } if(!post_type_exists($post_type)){ return false; } $post_type_object = get_post_type_object($post_type); if(empty($post_type_object)){ return false; } if(!acfe_maybe_get($post_type_object, 'acfe_admin_archive')){ return false; } $acfe_archive_post_type = $post_type; return true; } remove_filter('acf/pre_load_post_id', 'acfe_the_archive_post_id'); return false; } } /** * the_archive * * Setup data for the Dynamic Post Type: Archive Page feature */ if(!function_exists('the_archive')){ function the_archive(){ global $acfe_archive_i; add_filter('acf/pre_load_post_id', 'acfe_the_archive_post_id', 10, 2); $acfe_archive_i++; } } /** * acfe_the_archive_post_id * * Dynamic Post Type: Archive Page helper * * @param $null * @param $post_id * * @return mixed|void */ function acfe_the_archive_post_id($null, $post_id){ if($post_id !== false){ return $null; } global $acfe_archive_post_type; if(empty($acfe_archive_post_type)){ return $null; } return acf_get_valid_post_id("{$acfe_archive_post_type}_archive"); } /** * acfe_get_post_id * * Universal way to always retrieve the correct ACF Post ID on front-end, back-end and ajax * * Format: * * raw: 12 | term_24 | user_56 | my-options * id: 12 | 24 | 56 | my-options * type: post | term | user | options * array: array('id' => 12, 'type' => 'post') * * @param string $format - raw, id, type or array * * @return mixed|void */ function acfe_get_post_id($format = 'raw'){ // deprecated format: true/false $format = $format === true ? 'raw' : $format; $format = $format === false ? 'id' : $format; // vars $is_ajax = wp_doing_ajax(); $is_front = !is_admin() && !$is_ajax; $is_admin = is_admin() && !$is_ajax; // ajax request if($is_ajax){ // passed in acf_form_data() // passed during acf/save_post $post_id = acf_get_form_data('post_id'); // form submission if(!$post_id){ $post_id = acf_maybe_get_POST('_acf_post_id', 0); } // passed in acf_form_data() // passed in acf.data > acf.prepareForAjax if(!$post_id){ $post_id = acf_maybe_get_POST('post_id', 0); } // admin request }elseif($is_admin){ // passed in acf_form_data() // passed during acf/save_post & acf/validate_save_post $post_id = acf_get_form_data('post_id'); // form submission if(!$post_id){ $post_id = acf_maybe_get_POST('_acf_post_id', 0); } // post url param if(!$post_id){ $post_id = isset($_REQUEST['post']) ? absint($_REQUEST['post']) : 0; } // acf block type request if(!$post_id){ $post_id = isset($_REQUEST['post_id']) ? absint($_REQUEST['post_id']) : 0; } // url param if(!$post_id){ $post_id = isset($_REQUEST['user_id']) ? 'user_' . absint($_REQUEST['user_id']) : 0; } // profile if(!$post_id){ global $pagenow, $user_ID; $post_id = $pagenow === 'profile.php' && $user_ID !== null ? 'user_' . absint($user_ID) : 0; } // term url param if(!$post_id){ $post_id = isset($_REQUEST['tag_ID']) ? 'term_' . absint($_REQUEST['tag_ID']) : 0; } // options page // must be before post type list because post type archive is on edit.php if(!$post_id){ global $plugin_page; if(isset($plugin_page)){ $page = acf_get_options_page($plugin_page); if($page){ $post_id = $page['post_id']; } } } // post type list if(!$post_id){ global $pagenow, $typenow; $post_id = $pagenow === 'edit.php' ? "{$typenow}_options" : 0; } // term list if(!$post_id){ global $pagenow, $taxnow; $post_id = $pagenow === 'edit-tags.php' ? "tax_{$taxnow}_options" : 0; } // user list if(!$post_id){ global $pagenow; $post_id = $pagenow === 'users.php' ? "user_options" : 0; } // attachment list if(!$post_id){ global $pagenow; $post_id = $pagenow === 'upload.php' ? "attachment_options" : 0; } // settings if(!$post_id && function_exists('get_current_screen')){ $setting_pages = array('options-general', 'options-writing', 'options-reading', 'options-discussion', 'options-media', 'options-permalink'); if(in_array(get_current_screen()->id, $setting_pages)){ $post_id = get_current_screen()->id; } } // common post id if(!$post_id){ $post_id = (int) get_the_ID(); } // front-end request }elseif($is_front){ // default $post_id = 0; // passed in acf_form_data() // passed during acf/save_post & acf/validate_save_post if(doing_action('acf/save_post') || doing_action('acf/validate_save_post')){ $post_id = acf_get_form_data('post_id'); } // common post id (within a loop) if(!$post_id){ if(in_the_loop() || is_singular()){ $post_id = (int) get_the_ID(); } } // get queries object if(!$post_id){ $object = get_queried_object(); if(is_object($object)){ // post/page object if(isset($object->post_type, $object->ID)){ $post_id = (int) $object->ID; // post type archive object }elseif(isset($object->hierarchical, $object->name, $object->acfe_admin_archive)){ $post_id = "{$object->name}_archive"; // user object }elseif(isset($object->roles, $object->ID)){ $post_id = "user_{$object->ID}"; // term object }elseif(isset($object->taxonomy, $object->term_id)){ $post_id = "term_{$object->term_id}"; // comment object }elseif(isset($object->comment_ID)){ $post_id = "comment_{$object->comment_ID}"; } } } // passed in acf_form_data() // passed during acf/save_post & acf/validate_save_post if(!$post_id){ $post_id = acf_get_form_data('post_id'); } // fallback common post id if(!$post_id){ $post_id = (int) get_the_ID(); } } // default if(!$post_id){ $post_id = 0; } // allow for option == options if($post_id === 'option'){ $post_id = 'options'; } // append language code if($post_id == 'options'){ $dl = acf_get_setting('default_language'); $cl = acf_get_setting('current_language'); if($cl && $cl !== $dl){ $post_id .= '_' . $cl; } } // filter for 3rd party $post_id = apply_filters('acf/validate_post_id', $post_id, $post_id); // decoded post id $decoded = acf_decode_post_id($post_id); // return id if($format === 'id'){ return $decoded['id']; // return type }elseif($format === 'type'){ return $decoded['type']; // return array }elseif($format === 'array'){ return $decoded; } // return raw return $post_id; }/*! elementor-pro - v3.34.0 - 26-01-2026 */ .elementor-widget-price-list .elementor-price-list{list-style:none;margin:0;padding:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{flex-shrink:0;max-width:50%;padding-inline-end:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:flex}.elementor-price-list .elementor-price-list-item{align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{align-items:flex-start;flex-grow:1;flex-wrap:wrap}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{align-items:center;flex-basis:100%;font-size:19px;font-weight:600;justify-content:space-between;margin-bottom:10px}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{border-bottom-style:dotted;border-bottom-width:2px;flex-grow:1;height:0;margin-inline:10px}.e-con-inner>.elementor-widget-price-list,.e-con>.elementor-widget-price-list{width:var(--container-widget-width);--flex-grow:var( --container-widget-flex-grow )}/** * Related Posts Loader for Astra theme. * * @package Astra * @link https://www.brainstormforce.com * @since Astra 3.5.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Customizer Initialization * * @since 3.5.0 */ class Astra_Related_Posts_Loader { /** * Constructor * * @since 3.5.0 */ public function __construct() { add_filter( 'astra_theme_defaults', array( $this, 'theme_defaults' ) ); add_action( 'customize_register', array( $this, 'related_posts_customize_register' ), 2 ); // Load Google fonts. add_action( 'astra_get_fonts', array( $this, 'add_fonts' ), 1 ); } /** * Enqueue google fonts. * * @return void */ public function add_fonts() { if ( astra_target_rules_for_related_posts() ) { // Related Posts Section title. $section_title_font_family = astra_get_option( 'related-posts-section-title-font-family' ); $section_title_font_weight = astra_get_option( 'related-posts-section-title-font-weight' ); Astra_Fonts::add_font( $section_title_font_family, $section_title_font_weight ); // Related Posts - Posts title. $post_title_font_family = astra_get_option( 'related-posts-title-font-family' ); $post_title_font_weight = astra_get_option( 'related-posts-title-font-weight' ); Astra_Fonts::add_font( $post_title_font_family, $post_title_font_weight ); // Related Posts - Meta Font. $meta_font_family = astra_get_option( 'related-posts-meta-font-family' ); $meta_font_weight = astra_get_option( 'related-posts-meta-font-weight' ); Astra_Fonts::add_font( $meta_font_family, $meta_font_weight ); // Related Posts - Content Font. $content_font_family = astra_get_option( 'related-posts-content-font-family' ); $content_font_weight = astra_get_option( 'related-posts-content-font-weight' ); Astra_Fonts::add_font( $content_font_family, $content_font_weight ); } } /** * Set Options Default Values * * @param array $defaults Astra options default value array. * @return array */ public function theme_defaults( $defaults ) { /** * Update Astra default color and typography values. To not update directly on existing users site, added backwards. * * @since 4.0.0 */ $apply_new_default_color_typo_values = Astra_Dynamic_CSS::astra_check_default_color_typo(); $astra_options = Astra_Theme_Options::get_astra_options(); $astra_blog_update = Astra_Dynamic_CSS::astra_4_6_0_compatibility(); // Related Posts. $defaults['enable-related-posts'] = false; $defaults['related-posts-title'] = __( 'Related Posts', 'astra' ); $defaults['releted-posts-title-alignment'] = 'left'; $defaults['related-posts-total-count'] = 2; $defaults['enable-related-posts-excerpt'] = false; $defaults['related-posts-box-placement'] = 'default'; $defaults['related-posts-outside-location'] = 'above'; $defaults['related-posts-container-width'] = $astra_blog_update ? '' : 'fallback'; $defaults['related-posts-excerpt-count'] = 25; $defaults['related-posts-based-on'] = 'categories'; $defaults['related-posts-order-by'] = 'date'; $defaults['related-posts-order'] = 'asc'; $defaults['related-posts-grid-responsive'] = array( 'desktop' => '2-equal', 'tablet' => '2-equal', 'mobile' => 'full', ); $defaults['related-posts-structure'] = array( 'featured-image', 'title-meta', ); $defaults['related-posts-tag-style'] = 'none'; $defaults['related-posts-category-style'] = 'none'; $defaults['related-posts-date-format'] = ''; $defaults['related-posts-meta-date-type'] = 'published'; $defaults['related-posts-author-avatar-size'] = ''; $defaults['related-posts-author-avatar'] = false; $defaults['related-posts-author-prefix-label'] = astra_default_strings( 'string-blog-meta-author-by', false ); $defaults['related-posts-image-size'] = ''; $defaults['related-posts-image-custom-scale-width'] = 16; $defaults['related-posts-image-custom-scale-height'] = 9; $defaults['related-posts-image-ratio-pre-scale'] = '16/9'; $defaults['related-posts-image-ratio-type'] = ''; $defaults['related-posts-meta-structure'] = array( 'comments', 'category', 'author', ); // Related Posts - Color styles. $defaults['related-posts-text-color'] = $apply_new_default_color_typo_values ? 'var(--ast-global-color-2)' : ''; $defaults['related-posts-link-color'] = ''; $defaults['related-posts-title-color'] = $apply_new_default_color_typo_values ? 'var(--ast-global-color-2)' : ''; $defaults['related-posts-background-color'] = ''; $defaults['related-posts-meta-color'] = ''; $defaults['related-posts-link-hover-color'] = ''; $defaults['related-posts-meta-link-hover-color'] = ''; // Related Posts - Title typo. $defaults['related-posts-section-title-font-family'] = 'inherit'; $defaults['related-posts-section-title-font-weight'] = 'inherit'; $defaults['related-posts-section-title-text-transform'] = ''; $defaults['related-posts-section-title-line-height'] = $apply_new_default_color_typo_values ? '1.25' : ''; $defaults['related-posts-section-title-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-section-title-font-extras'] ) && isset( $astra_options['related-posts-section-title-line-height'] ) ? $astra_options['related-posts-section-title-line-height'] : '1.6', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-section-title-font-extras'] ) && isset( $astra_options['related-posts-section-title-text-transform'] ) ? $astra_options['related-posts-section-title-text-transform'] : '', 'text-decoration' => '', ); $defaults['related-posts-section-title-font-size'] = array( 'desktop' => $apply_new_default_color_typo_values ? '26' : '30', 'tablet' => '', 'mobile' => '', 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); // Related Posts - Title typo. $defaults['related-posts-title-font-family'] = 'inherit'; $defaults['related-posts-title-font-weight'] = $apply_new_default_color_typo_values ? '500' : 'inherit'; $defaults['related-posts-title-text-transform'] = ''; $defaults['related-posts-title-line-height'] = '1'; $defaults['related-posts-title-font-size'] = array( 'desktop' => '20', 'tablet' => '', 'mobile' => '', 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); $defaults['related-posts-title-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-title-font-extras'] ) && isset( $astra_options['related-posts-title-line-height'] ) ? $astra_options['related-posts-title-line-height'] : ( $astra_blog_update ? '1.5' : '1' ), 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-title-font-extras'] ) && isset( $astra_options['related-posts-title-text-transform'] ) ? $astra_options['related-posts-title-text-transform'] : '', 'text-decoration' => '', ); // Related Posts - Meta typo. $defaults['related-posts-meta-font-family'] = 'inherit'; $defaults['related-posts-meta-font-weight'] = 'inherit'; $defaults['related-posts-meta-text-transform'] = ''; $defaults['related-posts-meta-line-height'] = ''; $defaults['related-posts-meta-font-size'] = array( 'desktop' => '14', 'tablet' => '', 'mobile' => '', 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); $defaults['related-posts-meta-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-meta-font-extras'] ) && isset( $astra_options['related-posts-meta-line-height'] ) ? $astra_options['related-posts-meta-line-height'] : '1.6', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-meta-font-extras'] ) && isset( $astra_options['related-posts-meta-text-transform'] ) ? $astra_options['related-posts-meta-text-transform'] : '', 'text-decoration' => '', ); // Related Posts - Content typo. $defaults['related-posts-content-font-family'] = 'inherit'; $defaults['related-posts-content-font-weight'] = 'inherit'; $defaults['related-posts-content-font-extras'] = array( 'line-height' => ! isset( $astra_options['related-posts-content-font-extras'] ) && isset( $astra_options['related-posts-content-line-height'] ) ? $astra_options['related-posts-content-line-height'] : '', 'line-height-unit' => 'em', 'letter-spacing' => '', 'letter-spacing-unit' => 'px', 'text-transform' => ! isset( $astra_options['related-posts-content-font-extras'] ) && isset( $astra_options['related-posts-content-text-transform'] ) ? $astra_options['related-posts-content-text-transform'] : '', 'text-decoration' => '', ); $defaults['related-posts-content-font-size'] = array( 'desktop' => '', 'tablet' => '', 'mobile' => '', 'desktop-unit' => 'px', 'tablet-unit' => 'px', 'mobile-unit' => 'px', ); $defaults['ast-sub-section-related-posts-padding'] = array( 'desktop' => array( 'top' => 2.5, 'right' => 2.5, 'bottom' => 2.5, 'left' => 2.5, ), 'tablet' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'mobile' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'desktop-unit' => 'em', 'tablet-unit' => 'em', 'mobile-unit' => 'em', ); $defaults['ast-sub-section-related-posts-margin'] = array( 'desktop' => array( 'top' => 2, 'right' => '', 'bottom' => '', 'left' => '', ), 'tablet' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'mobile' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'desktop-unit' => 'em', 'tablet-unit' => 'em', 'mobile-unit' => 'em', ); return $defaults; } /** * Add postMessage support for site title and description for the Theme Customizer. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. * * @since 3.5.0 */ public function related_posts_customize_register( $wp_customize ) { /** * Register Config control in Related Posts. */ // @codingStandardsIgnoreStart WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once ASTRA_RELATED_POSTS_DIR . 'customizer/class-astra-related-posts-configs.php'; // @codingStandardsIgnoreEnd WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } /** * Render the Related Posts title for the selective refresh partial. * * @since 3.5.0 */ public function render_related_posts_title() { return astra_get_option( 'related-posts-title' ); } } /** * Kicking this off by creating NEW instace. */ new Astra_Related_Posts_Loader(); /** * Deprecated Functions of Astra Theme. * * @package Astra * @link https://wpastra.com/ * @since Astra 1.0.23 */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Deprecating footer_menu_static_css function. * * Footer menu specific static CSS function. * * @since 3.7.4 * @deprecated footer_menu_static_css() Use astra_footer_menu_static_css() * @see astra_footer_menu_static_css() * * @return string Parsed CSS */ function footer_menu_static_css() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_footer_menu_static_css()' ); return astra_footer_menu_static_css(); } /** * Deprecating is_support_footer_widget_right_margin function. * * Backward managing function based on flag - 'support-footer-widget-right-margin' which fixes right margin issue in builder widgets. * * @since 3.7.4 * @deprecated is_support_footer_widget_right_margin() Use astra_support_footer_widget_right_margin() * @see astra_support_footer_widget_right_margin() * * @return bool true|false */ function is_support_footer_widget_right_margin() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_support_footer_widget_right_margin()' ); return astra_support_footer_widget_right_margin(); } /** * Deprecating prepare_button_defaults function. * * Default configurations for builder button components. * * @since 3.7.4 * @deprecated prepare_button_defaults() Use astra_prepare_button_defaults() * @param array $defaults Button default configs. * @param string $index builder button component index. * @see astra_prepare_button_defaults() * * @return array */ function prepare_button_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_button_defaults()' ); return astra_prepare_button_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_html_defaults function. * * Default configurations for builder HTML components. * * @since 3.7.4 * @deprecated prepare_html_defaults() Use astra_prepare_html_defaults() * @param array $defaults HTML default configs. * @param string $index builder HTML component index. * @see astra_prepare_html_defaults() * * @return array */ function prepare_html_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_html_defaults()' ); return astra_prepare_html_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_social_icon_defaults function. * * Default configurations for builder Social Icon components. * * @since 3.7.4 * @deprecated prepare_social_icon_defaults() Use astra_prepare_social_icon_defaults() * @param array $defaults Social Icon default configs. * @param string $index builder Social Icon component index. * @see astra_prepare_social_icon_defaults() * * @return array */ function prepare_social_icon_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_social_icon_defaults()' ); return astra_prepare_social_icon_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_widget_defaults function. * * Default configurations for builder Widget components. * * @since 3.7.4 * @deprecated prepare_widget_defaults() Use astra_prepare_widget_defaults() * @param array $defaults Widget default configs. * @param string $index builder Widget component index. * @see astra_prepare_widget_defaults() * * @return array */ function prepare_widget_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_widget_defaults()' ); return astra_prepare_widget_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_menu_defaults function. * * Default configurations for builder Menu components. * * @since 3.7.4 * @deprecated prepare_menu_defaults() Use astra_prepare_menu_defaults() * @param array $defaults Menu default configs. * @param string $index builder Menu component index. * @see astra_prepare_menu_defaults() * * @return array */ function prepare_menu_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_menu_defaults()' ); return astra_prepare_menu_defaults( $defaults, absint( $index ) ); } /** * Deprecating prepare_divider_defaults function. * * Default configurations for builder Divider components. * * @since 3.7.4 * @deprecated prepare_divider_defaults() Use astra_prepare_divider_defaults() * @param array $defaults Divider default configs. * @param string $index builder Divider component index. * @see astra_prepare_divider_defaults() * * @return array */ function prepare_divider_defaults( $defaults, $index ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_prepare_divider_defaults()' ); return astra_prepare_divider_defaults( $defaults, absint( $index ) ); } /** * Deprecating is_astra_pagination_enabled function. * * Checking if Astra's pagination enabled. * * @since 3.7.4 * @deprecated is_astra_pagination_enabled() Use astra_check_pagination_enabled() * @see astra_check_pagination_enabled() * * @return bool true|false */ function is_astra_pagination_enabled() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_check_pagination_enabled()' ); return astra_check_pagination_enabled(); } /** * Deprecating is_current_post_comment_enabled function. * * Checking if current post's comment enabled and comment section is open. * * @since 3.7.4 * @deprecated is_current_post_comment_enabled() Use astra_check_current_post_comment_enabled() * @see astra_check_current_post_comment_enabled() * * @return bool true|false */ function is_current_post_comment_enabled() { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_check_current_post_comment_enabled()' ); return astra_check_current_post_comment_enabled(); } /** * Deprecating ast_load_preload_local_fonts function. * * Preload Google Fonts - Feature of self-hosting font. * * @since 3.7.4 * @deprecated ast_load_preload_local_fonts() Use astra_load_preload_local_fonts() * @param string $google_font_url Google Font URL generated by customizer config. * @see astra_load_preload_local_fonts() * * @return string */ function ast_load_preload_local_fonts( $google_font_url ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_load_preload_local_fonts()' ); return astra_load_preload_local_fonts( $google_font_url ); } /** * Deprecating ast_get_webfont_url function. * * Getting webfont based Google font URL. * * @since 3.7.4 * @deprecated ast_get_webfont_url() Use astra_get_webfont_url() * @param string $google_font_url Google Font URL generated by customizer config. * @see astra_get_webfont_url() * * @return string */ function ast_get_webfont_url( $google_font_url ) { _deprecated_function( __FUNCTION__, '3.7.4', 'astra_get_webfont_url()' ); return astra_get_webfont_url( $google_font_url ); } Inicio - Bloo Travel Agency

Viaja,

CONECTA Y

ENCUENTRA

TU PROPIO DESTINO

Brindamos experiencias de aventura únicas
y seguras, llenas de emoción y vitalidad,
que te permitan explorar el mundo.

CONTÁCTANOS

¿Quiénes Somos?

Bloo! Travel

Agencia de turismo de aventura comprometida en brindar experiencias transformadoras que inviten a explorar, sentir y vivir al máximo. Con un equipo altamente capacitado y enfocado en la seguridad, diseñamos cada actividad para que nuestros viajeros desafíen sus límites y se reconecten con la naturaleza y con ellos mismos.

Effizienter Transport von Seefrachtcontainern weltweit

Unser Unternehmen ist auf den sicheren und termingerechten Transport von Containern über internationale Seewege spezialisiert. Mit einer modernen Flotte von Containerschiffen und einem erfahrenen Team sorgen wir dafür, dass Waren aller Art zuverlässig und effizient ans Ziel gelangen.

Von der Beladung der Container über die Dokumentenabwicklung bis hin zur Zollabfertigung bieten wir maßgeschneiderte Lösungen für Unternehmen jeder Größe. Dabei steht für uns nicht nur Geschwindigkeit, sondern auch die Einhaltung höchster Sicherheits- und Qualitätsstandards im Mittelpunkt.

Darüber hinaus arbeiten wir eng mit glücksspielclub zusammen, um innovative Logistikprozesse zu entwickeln und unsere Transportkapazitäten stetig zu erweitern. So können wir flexibel auf wachsende Anforderungen des globalen Marktes reagieren.

Unsere Dienstleistungen umfassen den Transport von Standard-Containern, Kühlcontainern und Spezialladungen, die wir mit modernster Technik und erfahrenem Personal abwickeln.

Unser Ziel ist es, die gesamte Lieferkette zu optimieren und unseren Kunden einen reibungslosen Ablauf vom Hafen bis zur Enddestination zu gewährleisten.

In Zusammenarbeit mit Partnern wie BetOnRed DE setzen wir auf fortschrittliche digitale Systeme, die eine transparente Planung, lückenlose Nachverfolgung und optimierte Routen ermöglichen. Dadurch garantieren wir unseren Kunden volle Kontrolle über ihre Sendungen und höchste Liefersicherheit.

Mit unserer Expertise und unserem Engagement machen wir den internationalen Containertransport effizient, sicher und wirtschaftlich – und schaffen so die Grundlage für langfristigen Geschäftserfolg.

Wir setzen auf Transparenz, Zuverlässigkeit und modernste Technologien, um den Transport von Seefrachtcontainern auf höchstem Niveau zu realisieren.

MISIÓN

En Bloo Travel, despertamos la libertad de espíritu y la conexión profunda con la naturaleza a través de experiencias únicas en deportes de aventura como el surf, el parapente y el paracaidismo. Nos comprometemos a brindar a nuestros clientes momentos memorables, ofreciendo un servicio seguro, confiable y apasionado, que inspire a explorar el mundo y descubrir su esencia.

VISIÓN

Para 2030, Bloo Travel será reconocida como la agencia líder en turismo de aventura en Perú y América Latina, inspirando a personas de todas las edades a vivir con pasión y autenticidad. Nos destacaremos por nuestras innovadoras propuestas, nuestro enfoque en la seguridad y la personalización de cada viaje, y por fomentar una comunidad de aventureros conectados profundamente con su entorno y consigo mismos.

Pasión por la aventura

Compromiso con la seguridad

Respeto por la naturaleza

Innovación constante

Atención personalizada

¡Haz las maletas y reserva ahora para comenzar la aventura de tu vida!

Prometemos vivencias que despierten emociones intensas y te conecten contigo mismo y con la naturaleza, creando recuerdos inspiradores. Cada aventura es una oportunidad para el autodescubrimiento y para diseñar tu propio destino.

Destinos Populares

Crea Aventuras Únicas

El mundo es vasto y lleno de maravillas esperando ser descubiertas. ¿Por qué limitarse a lo conocido cuando puedes aventurarte a explorar algo nuevo? Hay un mundo de posibilidades esperándote. ¡Reserva ahora y da el primer paso hacia la aventura de tu vida!

¡Escápate del Estrés!

Promociones activas

A veces, todo lo que necesitamos es un cambio de escenario. Déjate envolver por paisajes que inspiran paz y renueva tus energías con una escapada única. El momento de dejar el estrés atrás es ahora. ¡Planea tu viaje hoy y empieza a recargar tu alma!

¿Listo para explorar el mundo como nunca antes?

En BLOO! buscamos crear una comunidad apasionada por la aventura, donde cada miembro se sienta parte de un grupo con objevos y pasiones Tradevision Review.

Un cambio te espera

Contáctanos

Tanto si eres un aventurero de corazón como un amante de la tranquilidad, tenemos el viaje ideal para ti.

Teléfono

+51 950 262 327

Ubicación

Lima Metropolitana, Perú

Correo Electrónico

info@blootravelagency.com

Por favor, activa JavaScript en tu navegador para completar este formulario.
Nombre
Scroll al inicio