簡體   English   中英

當訪問特定頁面(在WordPress之外)自定義PHP頁面時,如何清除woocommerce購物車

[英]How to clear the woocommerce cart when visiting the particular page (outside of wordpress) custom php page

我有woocommerce商店,例如:example.com/store/

我正在wordpress之外創建一些產品銷售頁面:example.com/upsell.php

現在,一旦您訪問example.com/upsell.php,我想清除購物車,因為我們在加售中有多個步驟,最后我們發送了一個網址請求,將商品添加到購物車中(example.com/store/購物車/加到購物車= 1、5、8)。

每當您訪問加售頁面時,我們都需要清除購物車會話。

如何從加售頁面清除購物車會話?

您需要添加一個操作,該操作將清除模板重定向掛鈎中的購物車項目。

在自定義功能中,檢查當前頁塞,然后根據我們的條件清除購物車。

在主題的functions.php或自定義插件文件中使用以下代碼片段。

add_action( 'template_redirect', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
    global $post;
    $slug = $post->post_name;
    if($slug == 'sample-page') {
        global $woocommerce;
        $woocommerce->cart->empty_cart();
    }
}

更新資料

如果您不喜歡對頁面信息進行硬編碼,那么還有更好的方法。

add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
    if ( isset( $_GET['clear-cart'] ) ) {
        global $woocommerce;
        $woocommerce->cart->empty_cart();
    }
}

將上述代碼添加到主題的functions.php文件中。

然后通過在URL中添加clear-cart查詢字符串重定向到頁面,這將清除所有購物車項目。

我們可以在任何URL中使用此功能。

http://example.com?clear-cart

要么

http://example.com/sample-page/?clear-cart

我將使用$ _SERVER ['REQUEST_URI']來獲取頁面的當前URL,以便您可以測試是否在加售頁面上。

您需要使用以下功能來清除購物車

global $woocommerce;
$woocommerce->cart->empty_cart();

您需要在wp實例中創建Web api,使用此代碼清除購物車

global $woocommerce;
$woocommerce->cart->empty_cart();

並在upsell.php文件中調用該api。 您甚至可以使用HTTP_REFERER來檢查用戶是否直接點擊了upsell.php網址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM