$order_id, 'mode' => $order_id ? 'edit' : 'list', 'rest_path' => '/' . REST_Controller::NS, 'split_reasons' => Settings::get_split_reasons(), 'unable_reasons' => Settings::get_unable_reasons(), 'shipping_mode' => Settings::get_shipping_mode(), // [ { value, label } ] — empty unless an extension offers a choice of status for the new order 'child_statuses' => array_values( (array) apply_filters( 'patchwork_split_child_status_options', [] ) ), 'notify_split' => Settings::email_on_split(), 'notify_unable' => Settings::email_on_unable(), 'today' => current_time( 'Y-m-d' ), 'backorder_reason' => Backorders::reason(), // Status to pre-select when splitting backorders ('' = keep the default) 'backorder_status' => (string) apply_filters( 'patchwork_split_backorder_child_status', '' ), 'extensions' => array_keys( patchwork_split_get_extensions() ), 'i18n' => [ 'manager_title' => __( 'Manage order items', 'patchwork-order-split' ), 'manager_subtitle' => __( 'Split items into a new order, or mark items you can\'t fulfil.', 'patchwork-order-split' ), 'btn_open' => __( 'Open manager', 'patchwork-order-split' ), 'btn_apply' => __( 'Apply changes', 'patchwork-order-split' ), 'btn_close' => __( 'Close', 'patchwork-order-split' ), 'action_keep' => __( 'Keep', 'patchwork-order-split' ), 'action_keep_sub' => __( 'Stays in this order', 'patchwork-order-split' ), 'action_split' => __( 'Split', 'patchwork-order-split' ), 'action_split_sub' => __( 'Move to a new order', 'patchwork-order-split' ), 'action_unable' => __( 'Unable', 'patchwork-order-split' ), 'action_unable_sub'=> __( 'Can\'t fulfil this item', 'patchwork-order-split' ), 'label_reason' => __( 'Reason', 'patchwork-order-split' ), 'label_notes' => __( 'Notes (optional)', 'patchwork-order-split' ), 'label_qty' => __( 'Qty', 'patchwork-order-split' ), 'label_move_qty' => __( 'How many', 'patchwork-order-split' ), 'label_of' => __( 'of', 'patchwork-order-split' ), 'label_stays' => __( 'stay in this order', 'patchwork-order-split' ), 'label_date' => __( 'New order date', 'patchwork-order-split' ), 'label_shipping' => __( 'Shipping', 'patchwork-order-split' ), 'label_status' => __( 'New order status', 'patchwork-order-split' ), 'ship_keep' => __( 'Keep on this order', 'patchwork-order-split' ), 'ship_zero' => __( 'Same method on new order, free', 'patchwork-order-split' ), 'ship_move' => __( 'Move to new order', 'patchwork-order-split' ), 'label_notify' => __( 'Email the customer', 'patchwork-order-split' ), 'label_refund_gw' => __( 'Refund unable items through the payment provider now', 'patchwork-order-split' ), 'paid_unable_note' => __( 'This order is paid: Unable items will be refunded (recorded on the order).', 'patchwork-order-split' ), 'refunded_item' => __( 'Already refunded — can\'t be changed', 'patchwork-order-split' ), 'os_title' => __( 'Summary', 'patchwork-order-split' ), 'os_current' => __( 'This order', 'patchwork-order-split' ), 'os_split' => __( 'New order', 'patchwork-order-split' ), 'os_unable' => __( 'Unable', 'patchwork-order-split' ), 'os_shipping' => __( 'Shipping', 'patchwork-order-split' ), 'os_estimate' => __( 'Estimate incl. tax; final totals are calculated by WooCommerce.', 'patchwork-order-split' ), 'err_no_items' => __( 'No order items found.', 'patchwork-order-split' ), 'err_no_changes' => __( 'Mark at least one item as Split or Unable.', 'patchwork-order-split' ), 'err_load' => __( 'Could not load the order items. Open the order directly and try again.', 'patchwork-order-split' ), 'processing' => __( 'Applying changes…', 'patchwork-order-split' ), 'done' => __( 'Done.', 'patchwork-order-split' ), 'done_child' => __( 'New order', 'patchwork-order-split' ), 'done_unable' => __( 'Unable items recorded in', 'patchwork-order-split' ), 'done_refund' => __( 'Refund created', 'patchwork-order-split' ), 'btn_reload' => __( 'Reload order', 'patchwork-order-split' ), 'loading' => __( 'Loading…', 'patchwork-order-split' ), ], ] ); } /** * On a split or unable order, say where it came from and how payment works. */ public function relationship_notice(): void { $order_id = self::current_order_id(); if ( ! $order_id ) return; $order = wc_get_order( $order_id ); if ( ! $order ) return; $parent_id = (int) $order->get_meta( '_pwsplit_parent_id' ); if ( ! $parent_id ) return; $parent = wc_get_order( $parent_id ); $link = $parent ? sprintf( '#%s', esc_url( $parent->get_edit_order_url() ), esc_html( $parent->get_order_number() ) ) : '#' . (int) $parent_id; $type = $order->get_meta( '_pwsplit_type' ); $msg = $type === 'unable' /* translators: %s: link to the original order */ ? sprintf( esc_html__( 'This order records items that could not be fulfilled from order %s.', 'patchwork-order-split' ), $link ) /* translators: %s: link to the original order */ : sprintf( esc_html__( 'This order was split from order %s.', 'patchwork-order-split' ), $link ); if ( $order->get_meta( '_pwsplit_paid_via_parent' ) ) { $msg .= ' ' . esc_html__( 'It was paid as part of that order, so make any refunds from the original order.', 'patchwork-order-split' ); } echo '
' . wp_kses( $msg, [ 'a' => [ 'href' => [] ] ] ) . '