在使用“woe_order_export_started”挂钩时确定 WooCommerce 订单是否包含订单备注

时间:2021-06-09 06:59:25

标签: php wordpress woocommerce hook-woocommerce orders

woe_order_export_started 过滤器钩子与 plugin

此代码用于导出订单总数> 10

add_filter( 'woe_order_export_started',  function ( $order_id ) { 
    $order = new WC_Order($order_id);
    return   ($order->get_total()  > 10.00) ? $order_id: false;
});

我正在尝试创建一个 php 代码来找出订单是否有订单备注,并忽略没有订单备注的订单。

我找到了获取订单备注的代码

$args = array(
        'post_id'   => $order->id,
        'approve'   => 'approve',
        'type'      => 'order_note',
        'search'        => 'Order status changed from Pending Payment to Processing.',
    );
    // woocommerce hides such records by default
    remove_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ), 10 );
    $notes = get_comments( $args );
    add_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ), 10, 1 );

如何使用 woe_order_export_started 过滤器挂钩来确定订单是否有订单备注。

基本上我想避免导出没有订单备注的订单。所以如果没有订单说明应该返回false。

1 个答案:

答案 0 :(得分:1)

如果没有订单备注,使用 woo_order_export_started 过滤器钩子时,以下答案返回 false

function filter_woe_order_export_started( $order_id ) {
    // Get order notes
    $notes = wc_get_order_notes( array(
        'order_id' => $order_id,
        'order_by' => 'date_created',
        'order' => 'ASC',
    ));
    
    // Notes is empty
    if ( empty( $notes ) ) {
        return false;
    }
    
    return $order_id;
}
add_filter( 'woe_order_export_started', 'filter_woe_order_export_started', 10, 1 );