WooCommerce:如何在订单元数据对象中获取带有自定义 ID 的订单?

约翰尼97

因为一个项目,我需要你的帮助。我已经搜索了很多,但我找不到解决方案。我正在尝试编辑名为的 WooCommerce 函数

  • woocommerce_account_orders


我已经添加了字段

  • mycustom_id

到订单元数据对象,因为我需要在 mycustom_id 字段中获取当前登录用户的所有订单:

  • (mycustom_id = current_user_id())


customer应该留下的支票我只需要添加其他current_user_id检查。

这应该保持原样:

  • '客户' => get_current_user_id()


. 这是我不工作的代码片段:

function woocommerce_account_orders( $current_page ) {
    $current_page    = empty( $current_page ) ? 1 : absint( $current_page );
    $customer_orders = wc_get_orders( apply_filters( 'woocommerce_my_account_my_orders_query', array(
        'customer' => get_current_user_id(),
        'mycustom_id' => get_current_user_id(),
        'page'     => $current_page,
        'paginate' => true,
    ) ) );

    wc_get_template(
        'myaccount/orders.php',
        array(
            'current_page'    => absint( $current_page ),
            'customer_orders' => $customer_orders,
            'has_orders'      => 0 < $customer_orders->total,
        )
    );
}

方法位于:https : //docs.woocommerce.com/wc-apidocs/source-function-woocommerce_account_orders.html#2465-2486


如何以像过滤器这样的智能方式将此功能添加到函数中,以及如何以正确的方式将自定义参数传递给函数?我已将参数保存为 order_meta 属性:

[5] => WC_Meta_Data Object (
     [current_data:protected] => Array (
          [id] => 3477
          [key] => mycustom_id
          [value] => 2
)

感谢您的帮助。我已经尝试了很多,但我是 PHP 新手,必须学习很多。

卡夏洛

如果你想改变这个查询,你可以通过调用woocommerce_my_account_my_orders_query过滤器而不是修改核心函数来实现,这样你就可以达到所需的效果,如下所示:

add_filter( 'woocommerce_my_account_my_orders_query', 'modify_my_order_query', 10, 1 );

function modify_my_order_query( $q ) {
    $q['customer'] = [ 1, 3 ]; // you customers ids here 

    return $q;
}

但是上面的这个功能只会在列表中显示订单,如果客户点击该订单查看详细信息,他将收到一条错误消息,因为他没有查看订单的权限,您需要修改该view_order功能

例如,您可以授予具有 ID 1 的用户查看用户 ID 3 订单的权限,如下所示:

function give_permissions( $allcaps, $cap, $args ) {
    $user = 3; //user id 
    if ( $cap[0] == 'view_order' ) {
        $allcaps[ $cap[0] ] = true;
    }
    return ( $allcaps );
}
add_filter( 'user_has_cap', 'give_permissions', 10, 3 );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在WooCommerce中添加带有价格不含税的自定义订单元数据

来自分类Dev

Android订阅的订单ID

来自分类Dev

以编程方式创建WooCommerce订单时设置外部订单ID

来自分类Dev

如何在WooCommerce中获取订单ID?

来自分类Dev

如何使用订单ID获取订单增量ID?

来自分类Dev

如何获得在functions.php中的函数中使用的woocommerce订单的订单ID?

来自分类Dev

使用ID检索订单明细

来自分类Dev

通过magento中的订单ID获取订单详细信息

来自分类Dev

通过订单ID获取订单总计,而无需在WooCommerce中设置格式

来自分类Dev

WooCommerce:获取自定义帖子类型ID或特定订单状态的电子邮件通知

来自分类Dev

在WooCommerce订单列表中显示Dokan自定义订单元数据

来自分类Dev

在WooCommerce的“收到订单”谢谢页面上获取订单ID

来自分类Dev

如何在WooCommerce中自动更新特定订单ID的订单状态

来自分类Dev

验证订单ID是否存在

来自分类Dev

获取基于订单产品的订单ID

来自分类Dev

在Woocommerce中每天获取按产品ID进行的订单计数

来自分类Dev

如何从magento中的$ observer获取订单ID

来自分类Dev

如何使用订单ID获取订单增量ID?

来自分类Dev

表格中的订单ID

来自分类Dev

如何在Infusionsoft中通过订单ID获取订单详细信息

来自分类Dev

Drupal Commerce订单管理页面,订单ID

来自分类Dev

Android订阅的订单ID

来自分类Dev

如何在销售订单onclick中的自定义操作中获取选定的订单ID?

来自分类Dev

如何在Magento中获取订单的下一个订单ID

来自分类Dev

通过订单ID获取订单详细信息

来自分类Dev

如何在 woocommerce 支付网关类中的 payment_fields() 中获取订单 ID

来自分类Dev

jQuery:从 json 响应中获取订单 ID

来自分类Dev

shopify webhooks 中的订单 ID

来自分类Dev

如何获取销售订单 ID 并将其设置在 netsuite 的自定义记录中?

Related 相关文章

  1. 1

    在WooCommerce中添加带有价格不含税的自定义订单元数据

  2. 2

    Android订阅的订单ID

  3. 3

    以编程方式创建WooCommerce订单时设置外部订单ID

  4. 4

    如何在WooCommerce中获取订单ID?

  5. 5

    如何使用订单ID获取订单增量ID?

  6. 6

    如何获得在functions.php中的函数中使用的woocommerce订单的订单ID?

  7. 7

    使用ID检索订单明细

  8. 8

    通过magento中的订单ID获取订单详细信息

  9. 9

    通过订单ID获取订单总计,而无需在WooCommerce中设置格式

  10. 10

    WooCommerce:获取自定义帖子类型ID或特定订单状态的电子邮件通知

  11. 11

    在WooCommerce订单列表中显示Dokan自定义订单元数据

  12. 12

    在WooCommerce的“收到订单”谢谢页面上获取订单ID

  13. 13

    如何在WooCommerce中自动更新特定订单ID的订单状态

  14. 14

    验证订单ID是否存在

  15. 15

    获取基于订单产品的订单ID

  16. 16

    在Woocommerce中每天获取按产品ID进行的订单计数

  17. 17

    如何从magento中的$ observer获取订单ID

  18. 18

    如何使用订单ID获取订单增量ID?

  19. 19

    表格中的订单ID

  20. 20

    如何在Infusionsoft中通过订单ID获取订单详细信息

  21. 21

    Drupal Commerce订单管理页面,订单ID

  22. 22

    Android订阅的订单ID

  23. 23

    如何在销售订单onclick中的自定义操作中获取选定的订单ID?

  24. 24

    如何在Magento中获取订单的下一个订单ID

  25. 25

    通过订单ID获取订单详细信息

  26. 26

    如何在 woocommerce 支付网关类中的 payment_fields() 中获取订单 ID

  27. 27

    jQuery:从 json 响应中获取订单 ID

  28. 28

    shopify webhooks 中的订单 ID

  29. 29

    如何获取销售订单 ID 并将其设置在 netsuite 的自定义记录中?

热门标签

归档