我正在使用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也可以过滤它,而无需单击此Text / Visual面板(但是我对此可能有误).
有人知道该怎么办吗?
谢谢!
解决方法:
最简单准确的方法是通过以下方式创建自定义简码:
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]