Wordpress / Woocommerce会话

时间:2014-06-17 13:59:00

标签: php wordpress cookies woocommerce

下午好,我使用Wordpress / Woocommerce为我的客户建立了一个网站。该网站运作良好,但一个问题是订单完成后篮子/会话不清楚。在我看来,WooCommerce甚至没有标准功能。使用Woocommece标准文件,在结帐过程完成后杀死会话的最佳方法是什么?

有解决方法吗?

4 个答案:

答案 0 :(得分:5)

结账后你的购物车应该清理,所以其他可能是错误的。

您可以在其中创建一个empty_cart()的函数,该函数在付款完成后触发“以防万一”。 请参阅:http://docs.woothemes.com/wc-apidocs/class-WC_Cart.html

add_filter( 'woocommerce_payment_complete_order_status', 'pg_woocommerce_payment_complete_order_status', 10, 2 );
function pg_woocommerce_payment_complete_order_status ( $order_status, $order_id ) {

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

}

答案 1 :(得分:0)

你可以使用这个钩子:

function custom_empty_cart( $order_id, $data ) {
   // delete current cart item here
}

add_action( 'woocommerce_checkout_order_processed', 'custom_empty_cart', 11, 2 );

或者您可以查看来自here的woocommerce挂钩列表。

答案 2 :(得分:0)

购物车应该为空,因为此功能是标准的,empty_cart();

您使用的是任何缓存插件吗?在这种情况下,您需要排除购物车页面 http://docs.woothemes.com/document/configuring-caching-plugins/

这也可能是支付网关的问题,请确保您已更新到最新版本。

答案 3 :(得分:0)

我发现了一个类似的问题,但只需点击一下按钮即可清除购物车。 http://wordpress.org/support/topic/add-an-empty-cart-button-to-cart-page似乎对某些用户有用.. 这是代码,它应该进入function.php文件

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

这是按钮的代码

<input type="submit" class="button" name="clear-cart" value="<?php _e('Empty Cart', 'woocommerce'); ?>" />

我猜你不需要按钮,所以在下一页你想让购物车为空时,你可以明确地调用这个功能_e(&#39;空车&#39;,&#39; woocommerce&#39 );

例如,如果您要在标题为付款成功

的帖子页面中清除购物车
if(is_single('Payment Success'))
_e('Empty Cart', 'woocommerce');

或者它的slu is是否为支付成功

is_single('payment-success');
_e('Empty Cart', 'woocommerce');

类似于检查您的主页是否可以使用

is_front_page(); 

或者如果它在wordpress页面上你可以使用这个

if(is_page( 'Payment Success' ))
    _e('Empty Cart', 'woocommerce');

if(is_page( 'payment-success' ))
    _e('Empty Cart', 'woocommerce');

你可以在wordpress网站的head部分包含上面的代码!!

希望这有帮助