1

我不擅长 javascript,但我认为这段代码是正确的,因为它只是从 Zopim 网站复制和粘贴,并且在我尝试以不同的方法使用他们的小部件之前它正在工作。

functions.php

<?php
if ( is_product()) {
    function wpa_enqueue_scripts() {
        wp_enqueue_script( 'wpa-main-js', get_theme_file_uri( 'js/zopim.js' ), [], null, true );
    }

    add_action( 'wp_enqueue_scripts', 'wpa_enqueue_scripts', 100 );
}

我对上面的代码有另一个问题。我无法在产品页面上加载脚本文件。仅当我删除 if 条件时才有效。

zopim.js

<script type="text/javascript">
window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=
d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.
_.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute("charset","utf-8");
$.src="https://v2.zopim.com/?3eGZHNIx48cV45BpV2eeQ5nlDBvLzS0P";z.t=+new Date;$.
type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
</script>

这个脚本给了我这个错误:

“未捕获的 SyntaxError:预期的表达式,得到了 '<'”,我不知道为什么。

4

1 回答 1

2

“它只有在我删除 if 条件时才有效。”

  1. 我会在钩子if里写下声明。wp_enqueue_scripts像这样:
add_action( 'wp_enqueue_scripts', 'wpa_enqueue_scripts');

function wpa_enqueue_scripts()
{
    if ( is_product()) 
    {
        wp_enqueue_script( 'wpa-main-js', get_theme_file_uri( 'js/zopim.js' ), [], null, true );
    }
} 

“这个脚本给了我这个错误“未捕获的语法错误:预期的表达式,得到'<'”,我不知道为什么。”

  1. 您的文件中不需要script标签。javascript所以你可以继续删除<script type="text/javascript">and </script>

让我知道你是否可以让它工作。

于 2021-11-30T20:13:37.030 回答