javascript - WooCommerce 删除我添加到产品简短描述中的自定义 jQuery 代码

标签 javascript php jquery wordpress woocommerce

我正在使用 WordPress+WooCommerce 开发电子商务网站。

我在简短描述字段中为某些产品添加了按钮,以便快速选择要添加到购物车中的特定数量的产品(这是因为我有不同的报价,例如:“以 3 件的价格购买 4 件” ).

我在通用 jquery 文件中有这样一个脚本:

<script>
    function pack4() { document.getElementById("quantity").value = "4"; }
    function pack8() { document.getElementById("quantity").value = "8"; }
</script>

这是我在某些产品中的代码示例 简短说明:

<span><strong>4x3 Pack:</strong>TOTAL<strong>$1800</strong></span>
<button class="select" onclick="pack4()">Select</button>

一切正常,每当您点击每个按钮时,订单数量都会增加相应的数量。

事情是:每当我的客户(通常编辑产品)点击简短描述的文本/视觉翻盖时,onclick="pack4()" 代码消失。我想 WordPress/WooCommerce 有一些 jQuery 过滤器可以删除这种代码。我需要它停止这样做,因为客户经常编辑东西(当然他们对编码一无所知)。否则,我每次都必须重新添加代码。

我还怀疑 WP/WC 也可以过滤它而无需单击此文本/视觉翻盖(但我对此可能是错误的)。

有人知道怎么办吗?
谢谢!

最佳答案

最简单准确的方法是以这种方式创建自定义短代码:

if( !function_exists('display_product_button_pack') ) {

    function display_product_button_pack( $atts ) {

        // Shortcode Attributes
        $atts = shortcode_atts(
            array(
                'pack' => '4', // default pack is 4
            ),
            $atts,
            'button_pack'
        );

        $output = '<button class="select" onclick="pack'.$atts['pack'].'()">Select</button>';

        return $output;

    }

    add_shortcode( 'button_pack', 'display_product_button_pack' );
}

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

代码已经过测试并且可以工作。


用法:

在您的短代码中有一个可选的pack 参数,默认值为4 ...

例如,对于您的 Pack 8,您将在简短描述产品编辑器中插入:

[button_pack pack="8"]

这将输出这个 html:

<button class="select" onclick="pack8()">Select</button>

对于 Pack 4,因为默认参数值已经是 4,您只需使用它:

[button_pack]

关于javascript - WooCommerce 删除我添加到产品简短描述中的自定义 jQuery 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45180176/

相关文章:

javascript - REST-api 异步查询的随机结果

php - 找不到文件 nginx php-fpm

php - 试图在 PHP 中获取没有文件名的完整 URL

jquery - 在不影响整个行高的情况下更改 <td> 的高度

javascript - 对 Javascript 数组中的数组中的元素进行排序

javascript - 在链中使用时,下划线的 `extend` 的顺序相反

php - 使 PHP 的 mail() 异步

javascript - 在 gallery.php 中单击时突出显示缩略图

jquery - 是否可以将 div 固定在 X 轴上,但在 Y 轴上滚动?

javascript - dart 中生成代码的可读性