2017-09-02 114 views
1

如果您有任何人对WooCommerce很熟悉,您可能知道我们有一个[add_to_cart id="product_id"]简码可自动将给定的product_id添加到购物车中。PHP和WooCommerce问题

虽然我在html代码中给出了具体的ID,但是我希望它可以自动化,例如从cookie中获取ID,这很好。

这样做的问题是,使用JavaScript是不可能得到的功能,因为它来自于服务器端,但我一直在喃喃自语了几个小时,并用PHP还是一无所获......

什么可以我做?

编辑1:

我有什么如下:

document.addEventListener('DOMContentLoaded', function() { 
    document.getElementById('test').innerHTML= '[add_to_cart id="4158"]'; 
}) 

,这是行不通的。尽管如此,还是有饼干的。

+0

你可以尝试修改的功能,我发现它使用WordPress的简码和woocomerce这里https://github.com/woocommerce/woocommerce/blob/8ffbd331e0d5694045aec164f027928b43053130/includes/class-wc-shortcodes.php注册其add_to_cart短代码#L296我没有使用woocomerce的经验,所以我不知道,但如果有其他方法来覆盖这个功能,而不是在原始源代码中修改它,那么这将是一条路,所以任何更新都不会覆盖它。 –

+0

您可以通过使用四个空格缩进或使用'{}'按钮来格式化代码。反编译方法最适合于段落中的短代码片段,而不是孤立的。 – tadman

回答

0

解决这个问题有AJAX请求到服务器发送的所有产品信息我有,它再与

do_shortcode() 

功能回答我能这个问题的答案写入一些HTML元素,以查看我需要的按钮。

1

你不给你需要如何检索产品ID足够的信息,但一旦你拥有了它,你可以使用do_shortcode()将自动插入短代码:

if(isset($_COOKIE['product_id'])) { 
    $product_id = $_COOKIE['product_id']; // Get this from your cookie somehow 
    $shortcode = sprintf('[add_to_cart id="%d"]', $product_id); 
    echo do_shortcode($shortcode); 
} 
+0

这就是我所需要的和我所尝试的,但没有出现。 只有当我硬编码id –

+1

那么你没有正确地设置/检索你的cookie的ID?我建议你用你正在使用的东西编辑你的问题。 – helgatheviking