Automattic\WooCommerce\Internal\Admin\Orders
EditLock::check_locked_orders_ajax
Hooked to heartbeat_received the orders screen to refresh the locked status of orders in the list table.
Method of the class: EditLock{}
No Hooks.
Returns
Array. Response to be sent.
Usage
$EditLock = new EditLock(); $EditLock->check_locked_orders_ajax( $response, $data );
- $response(array) (required)
- The heartbeat response to be sent.
- $data(array) (required)
- Data sent through the heartbeat.
EditLock::check_locked_orders_ajax() EditLock::check locked orders ajax code WC 10.3.6
public function check_locked_orders_ajax( $response, $data ) {
if ( empty( $data['wc-check-locked-orders'] ) || ! is_array( $data['wc-check-locked-orders'] ) ) {
return $response;
}
$response['wc-check-locked-orders'] = array();
$order_ids = array_unique( array_map( 'absint', $data['wc-check-locked-orders'] ) );
foreach ( $order_ids as $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order || ! is_a( $order, \WC_Order::class ) ) {
continue;
}
if ( ! $this->is_locked_by_another_user( $order ) || ( ! current_user_can( get_post_type_object( $order->get_type() )->cap->edit_post, $order->get_id() ) && ! current_user_can( 'manage_woocommerce' ) ) ) {
continue;
}
$response['wc-check-locked-orders'][ $order_id ] = true;
}
return $response;
}