php - Woocommerce - 当购物车中没有任何内容时 wc_add_notice() 不添加到 session

标签 php wordpress woocommerce

我有一个自定义表单,在提交时调用 function.php 中的一个函数。它最终会检查输入的字段,然后使用 woocommerce wc_add_notice()(标准的东西)执行某些操作或发回错误消息。

问题是,它似乎只在某些时候将商品添加到购物车时才将通知添加到 session 中。如果我在隐身选项卡中打开并尝试表单,我将不会收到任何消息。需要说明的是,我在我的模板中使用了 wc_print_notices()

我已经打印出 woocommerce session 只是为了确认,是的,当没有任何东西被添加到购物车时它不在那里。我已经剥离了该功能,因此当您单击提交时,无论是否填写任何内容,它都应该发回一条错误消息,只是为了检查一下。这是有问题的功能:

add_action('wp_ajax_add_transfer', 'process_add_transfer');
add_action('wp_ajax_nopriv_add_transfer', 'process_add_transfer');
function process_add_transfer() {
     global $woocommerce;
     wc_add_notice( 'This is my custom error', 'error' );
     wp_redirect( get_permalink(125) ); //this is the same page form is on
}

link to page here

我搜索了又搜索,但没有发现我做错了什么或为什么这不起作用,感谢任何帮助。

干杯克里斯

最佳答案

好吧,我想通了!似乎 woocommerce 2.1 > 在使用购物车之前不会设置 cookie,以帮助进行缓存或其他操作。这是一个线程:https://github.com/woothemes/woocommerce/issues/4920

我的解决方案是将其添加到我的函数中:

do_action( 'woocommerce_set_cart_cookies',  true );

希望这对其他人有帮助。

关于php - Woocommerce - 当购物车中没有任何内容时 wc_add_notice() 不添加到 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35609525/

相关文章:

php - Eloquent Eager Loading 约束限制

PHP - 水印 PNG 透明度/Alpha

php - 如何在mysql中获取不同字段中的值的总和?

javascript - 使用 WordPress 瞬时缓存和 AJAX json 脚本的问题

php - 在 Swift2 中发送 php POST 请求需要很长时间

php - 在 WooCommerce "Order received"谢谢页面上获取订单 ID

php - WooCommerce:结帐页面中的帐户密码字段

php - Woocommerce - 防止将两个不同类别的商品添加到购物车

wordpress - 在 Woocommerce 中获取给定产品 ID 的产品的所有产品变体

php - Wordpress 帖子表 auto_increment 值太大 - 无法添加新页面