## 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
$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() );
}