当前位置: 首页 > 知识库问答 >
问题:

WooCommerce订阅2.0-wcs_renewal_order_created操作/筛选器引发错误

严心水
2023-03-14

当WooCommerce订阅创建一个新的订阅续订订单时,我正在尝试执行一个函数。

原因是我希望捕获这个事件并将细节传递到一个不同的数据库,这样我们就可以在我们的后端系统中用我们的支付网关触发业务工作流。

我使用wcs_renewal_order_created尝试了add_action和add_filter,然后通过从父订阅订单手动创建续订付款来测试这一点。

钩子调用函数,执行代码,将一些数据放入一些测试表中,然后Wordpress显示一个错误,如下所示。

有没有更简单的方法在创建续订订购订单时触发函数,如果没有,是否有人能帮助解释为什么调用一个设置付款方法的类似乎失败了。

function log_renewal_order_interface($order, $subscription) {
write_log('woocommerce_subscriptions_renewal_order_created function called');

global $conn;
global $wpdb, $table_prefix;

write_log('woocommerce_subscriptions_renewal_order_created setting up test variables');

write_log($order);


$test1 = 'logged renewal order';
$test2 = 'order_id'.$order_id;
$test3 = 'not set';
$test4 = 'not set';
$test5 = 'not set';

// test table entry
$conn->insert('test_tabel', 
    array('test1' => $test1, 'test2' => $test2, 'test3' => $test3, 'test4' => $test4, 'test5' => $test5),
    array('%s', '%s', '%s', '%s', '%s'));

 }

add_filter ('wcs_renewal_order_created', 'log_renewal_order_interface', 10,2);

然后我得到以下错误:

致命错误:未捕获错误:在/home/ourislan/livestle5d.ourislandsvoice.com/wp-content/plugins/woocommerce-subscriptions/inclass/admin/class-wcs-admin-meta-boxes.php:176堆栈跟踪:#0/home/ourislan/livestle5d.ourislandsvoice.com/wp-inclass/class-wp-hook.phpn/livestle5d.ourislandsvoice.com/wp-in/home/ourislan/livestle5d.ourislandsvoice.com/wp-content/plugins/woocommerce-subscriptions/inclass/admin/class-wcs-admin-meta-boxes.php第176行

共有1个答案

慕宏儒
2023-03-14

想通了。我需要在函数末尾显式返回$object。

 类似资料:
  • https://github.com/azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.azure.servicebus/topicsubscriptionwithruleoperationssample 现在我想添加一个筛选器/规则,这样只有通过筛选器中定义的特定条件的消息才应该给订阅。 例如,下面

  • 假设我有10个产品,并想提供他们在一个订阅。 正如你所看到的,每个月的价格都不一样。这在木业商业中是可能的吗?(已订阅产品/计划,但每月支付金额不等) 我在WooCommerce文档中找不到任何讨论此场景的内容。 多谢了。

  • 我正在使用Woocomemrce REST API与我的站点连接。当涉及到订单时,一切工作都很好,但对于订阅却不起作用。我尝试了以下代码来获取订阅,但它给出了“错误:找不到匹配URL和请求方法[rest_no_route]的路由” 谁能帮我解决这个问题。谢谢.

  • 我目前有一个RESTfulWebService跑步服。我最近添加了一个过滤器,它可以执行一些auth操作,并且可以在happy path的情况下工作。但是,当我需要从这个过滤器中抛出一个错误时,它不会将异常序列化为一个漂亮的json字符串,而是抛出一个500,错误如下: 问题是,我不想在应用程序/八位字节流中写入任何内容。我的服务只使用。这在我的实际类中不是问题,我可以在这些类中指定注释。从资源主

  • 我试着按照1给出的教程学习。我创建了一个主题,其中有两个主题的订阅,分别使用sqlFilter(user_age<50)和(user_age>=50)。我为消息定义了一个自定义属性user_age。但当我发送关于这个主题的消息时,两个订阅都收到相同的消息,这是胡说八道!知道吗? 我的代码完全是从tuto中给出的代码中获得灵感的,只是我使用这段代码接收来自给定订阅的消息:

  • 简介 Redis 的列表类型键可以用来实现队列,并且支持阻塞式读取,所以 Redis 能够非常容易的实现一个高性能的优先队列。同时在更高层面上,Redis 还支持“发布/订阅”的消息模式,可以基于此构建一个聊天系统。 发布示例 发布(Publish)即将消息发布到频道中。示例代码: // 发送消息 Redis::publish('chan-1', 'Hello, World!'); // 发送消息