2017-09-02 113 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