My PHP code below works great locally but as soon as I put this on the live server it takes the whole site down. After investigation error logs, it has an issue with the [] used in this line of code:
wp_enqueue_script( 'jquery', '//fake-jquery-script.js', [], null );
Here's the php in full, how do I get around this issue?
/**
* @desc De-register WP jquery
**/
add_action( 'wp_print_scripts', 'de_script', 100 );
function de_script() {
wp_dequeue_script( 'jquery' );
wp_deregister_script( 'jquery' );
}
/**
* Inject jQuery early if there's a Gravity Form
*/
function gc_gform_inject_jquery( $content = '' ) {
global $gc_jquery_loaded_before_gform;
if ( !isset( $gc_jquery_loaded_before_gform )) {
// set global variable so jQuery isn't loaded twice
$gc_jquery_loaded_before_gform = true;
// inject jQuery code
echo '<!-- loading jquery before Gravity Form inline scripts -->';
gc_load_jquery_cdn_and_fallback();
}
return $content;
}
add_filter( 'gform_cdata_open', 'gc_gform_inject_jquery' );
/**
* Load jQuery in the footer or before the first Gravity Form.
* Include a local fallback if the Google CDN fails (e.g. User is in China)
*/
function gc_load_jquery_cdn_and_fallback() {
// Google CDN
echo '<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery'. (SCRIPT_DEBUG ? '.js' : '.min.js') .'"></script>';
// Local fallback
echo '<script>if (!window.jQuery) { document.write(\'<script src="'. get_stylesheet_directory_uri() .'/js/vendor/jquery-1.11.2'. (SCRIPT_DEBUG ? '.js' : '.min.js') .'"><\/script>\'); }</script>';
}
/**
* Loading jQuery and jQuery-dependent scripts
* If jQuery was not already loaded before a Gravity Form, load it
* Also enqueue a fake version of it (for dependencies) and then
* remove this fake script
*/
function gc_load_javascript_in_footer() {
global $gc_jquery_loaded_before_gform;
// If jQuery has not been loaded already, load it
if ($gc_jquery_loaded_before_gform !== true) {
gc_load_jquery_cdn_and_fallback();
}
// Enqueue a fake script called "jquery" to for dependent enqueued scripts
// HERE'S THE PROBLEM
wp_enqueue_script( 'jquery', '//fake-jquery-script.js', [], null );
// Remove the fake script
function gc_remove_fake_jquery_script($tag) {
$tag = ( strpos($tag, 'fake-jquery-script') !== false ) ? '' : $tag;
return $tag;
}
add_filter( 'script_loader_tag', 'gc_remove_fake_jquery_script' );
}
add_action('wp_footer', 'gc_load_javascript_in_footer');