How to pass conditional array to wp_localize_script

Question

I’m trying to generate a custom array from a PHP function to pass on wp_localize_script but I seem to not be able to set page conditionals.

I have the following function:

function mb_scripts_settings() {

    // blanks
    $mb_ajax_form_type = $mb_get_page_slug = $mb_redirect = $mb_redirect_time = $mb_form_disable = $mb_array = '';


    // get the form type
    $mb_ajax_form_type      = ( is_front_page() ? 'change'  : 'submit'  );

    // get the page
    $mb_get_page_slug       = get_page_link();

    // generate the url for redirection
    $mb_form_area           = ( ( is_page('admin') && isset($_GET['mbtab']) )   ? $_GET['mbtab']    : null  );
    $mb_form_area_url       = ( empty($mb_form_area)    ? '/' : '/admin/?mbtab=' . $mb_form_area . '&mbform=1'          );

    // if the page is admin
    if( is_page('admin') ) {
        $mb_redirect        = true;
        $mb_redirect_time   = 3000;
        $mb_form_disable    = true;
    }

    // if the page is password set
    if( is_page('pw') ) {
        $mb_redirect        = true;
        $mb_redirect_time   = 3000;
        $mb_form_disable    = true;
    }

    // if the page is front
    if( is_page('pw') ) {
        $mb_redirect        = false;
        $mb_redirect_time   = 0;
        $mb_form_disable    = false;
        $mb_form_area = $mb_form_area_url = '';
    }

    // build the array
    $mb_array = array( $mb_ajax_form_type, $mb_get_page_slug, $mb_redirect, $mb_redirect_time, $mb_form_disable );

    return $mb_array;
}

However, I am getting an error saying I can’t call is_front_page or is_page outside of the loop. I have tried to do this by getting the page id and then the slug from that but it hasn’t returned any results – always blank in the mb_get_page_slug

function mb_scripts() {
    wp_enqueue_script( 'mbtheme_js', mbWebOS_js . 'theme-scripts. '.js' );
    wp_localize_script( 'mbtheme_js', 'mbtheme_js', mb_scripts_settings() );
}

add_action( 'wp_enqueue_scripts',   'mb_scripts'        );
0
, , markb 3 years 2019-11-20T22:47:52-05:00 0 Answers 69 views 0

Leave an answer

Browse
Browse