下午好,我使用Wordpress / Woocommerce为我的客户建立了一个网站。该网站运作良好,但一个问题是订单完成后篮子/会话不清楚。在我看来,WooCommerce甚至没有标准功能。使用Woocommece标准文件,在结帐过程完成后杀死会话的最佳方法是什么?
有解决方法吗?
答案 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部分包含上面的代码!!
希望这有帮助