Php 吴宇森商务管理员:如何在编辑订单的退款部分添加字段?

Php 吴宇森商务管理员:如何在编辑订单的退款部分添加字段?,php,woocommerce,hook-woocommerce,Php,Woocommerce,Hook Woocommerce,如何在“管理”中的“编辑订单”页面的“退款”部分中添加自定义字段 使用此代码,我们可以在订单详细信息页面中添加字段 在下的后端编辑订单页面中输出自定义可编辑字段 总务科 add_action( 'woocommerce_admin_order_data_after_order_details', 'editable_order_custom_field', 12, 1 ); function editable_order_custom_field( $order ){ // Loop

如何在“管理”中的“编辑订单”页面的“退款”部分中添加自定义字段

使用此代码,我们可以在订单详细信息页面中添加字段

在下的后端编辑订单页面中输出自定义可编辑字段 总务科

add_action( 'woocommerce_admin_order_data_after_order_details', 'editable_order_custom_field', 12, 1 );
function editable_order_custom_field( $order ){
    // Loop through order items
    foreach( $order->get_items() as $item_id => $item ){
        // Get "customer reference" from order item meta data
        if( $item->get_meta('Your Reference') ){
            // The "customer reference"
            $item_value = $item->get_meta('Your Reference');    
            // We output a hidden field with the Item ID (to be able to update this order item meta data later)
            echo '<input type="hidden" name="item_id_ref" value="' . $item_id . '">';

            break; // We stop the loop
        }
    }

    // Get "customer reference" from meta data (not item meta data)
    $updated_value = $order->get_meta('_customer_ref');

    // Replace "customer reference" value by the meta data if it exist
    $value = $updated_value ? $updated_value : ( isset($item_value) ? $item_value : '');

    // Display the custom editable field
    woocommerce_wp_text_input( array(
        'id'            => 'customer_ref',
        'label'         => __("Customer Reference:", "woocommerce"),
        'value'         => "",
        'wrapper_class' => 'form-field-wide',
    ) );
}

// Save the custom editable field value as order meta data and update order item meta data
add_action( 'woocommerce_process_shop_order_meta', 'save_order_custom_field_meta_data', 12, 2 );
function save_order_custom_field_meta_data( $post_id, $post ){
    if( isset( $_POST[ 'customer_ref' ] ) ){
        // Save "customer reference" as order meta data
        update_post_meta( $post_id, '_customer_ref', sanitize_text_field( $_POST[ 'customer_ref' ] ) );

        // Update the existing "customer reference" item meta data
        if( isset( $_POST[ 'item_id_ref' ] ) )
            wc_update_order_item_meta( $_POST[ 'item_id_ref' ], 'Your Reference', $_POST[ 'customer_ref' ] );
    }
}
add_action('woocommerce_admin_order_data_在_order_details之后,'editable_order_custom_field',12,1);
功能可编辑\订单\自定义\字段($order){
//循环浏览订单项
foreach($order->get\u items()作为$item\u id=>$item){
//从订单项元数据获取“客户参考”
如果($item->get_meta('Your Reference')){
//“客户参考”
$item_value=$item->get_meta(“您的引用”);
//我们输出一个带有项目ID的隐藏字段(以便以后能够更新此订单项目元数据)
回声';
break;//我们停止循环
}
}
//从元数据(非项目元数据)获取“客户参考”
$updated_value=$order->get_meta(“客户参考”);
//用元数据替换“客户参考”值(如果存在)
$value=$updated_值?$updated_值:(isset($item_值)?$item_值:“”);
//显示自定义可编辑字段
woocommerce_wp_text_输入(数组(
'id'=>'customer\u ref',
“标签”=>(客户参考:,“woocommerce”),
“值”=>“”,
'wrapper_class'=>'form field wide',
) );
}
//将自定义可编辑字段值另存为订单元数据,并更新订单项目元数据
添加操作('woocommerce\u process\u shop\u order\u meta','save\u order\u custom\u field\u meta\u data',12,2);
函数save\u order\u custom\u field\u meta\u data($post\u id,$post){
如果(isset($_POST['customer\u ref'])){
//将“客户参考”保存为订单元数据
更新发布元($发布id,'.'客户'.'参考',清理文本'.$字段($发布['客户'.'参考']);
//更新现有的“客户参考”项目元数据
如果(isset($_POST['item\u id\u ref']))
wc_更新_订单_项目_元($_POST['item_id_ref'],'Your Reference',$_POST['customer_ref']);
}
}