Woocommerce - 修改每个订单的付款方式说明

我正在使用Woocommerce网站,只有一种付款方式 - 信用卡 . 但是,我们为客户提供不同的选择,例如全额付款,4付款等等 . 所有这些都可以正常工作 - 我将付款数量存储在会话变量中 . 我需要在管理员订单屏幕中修改付款方式文本(目前只是说“通过信用卡”) .

我试过这个

if($_SESSION['payments'] == '4') add_post_meta( $order->id, '_payment_method_title', ' Via Credit Card with 4 Equal Payments');

但这没效果 . 会话变量 $_SESSION['payments'] 此时已被清除......订单已完成 .

如何修改订单元数据,以便按顺序显示客户需要多少付款?我创建了一个解决方案using this code但是它会为每个项目放置自定义说明,而不是订单的付款说明 .

回答(1)

2 years ago

要向订单添加自定义元数据:

/**
 * Update the order meta with field value
 **/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta( $order_id ) {
    if ($_POST['my_custom_field']) update_post_meta( $order_id, '_my_custom_field', esc_attr($_POST['my_custom_field']));
}

(信用转到Woocommerce custom field not saving

然后添加自定义列并在Woocommerce订单屏幕上显示自定义元:

//custom orders columns
add_filter( 'manage_edit-shop_order_columns', 'my_custom_order_columns',11 );
function my_custom_order_columns($columns) {
    $new_columns = (is_array($columns)) ? $columns : array();
    unset( $new_columns['order_actions'] );

    $new_columns['_my_custom_field'] = 'Custom Field';

    $new_columns['order_actions'] = $columns['order_actions'];
    return $new_columns;
}
add_action( 'manage_shop_order_posts_custom_column', 'my_custom_columns_values', 2 );
function my_custom_columns_values($column){
    global $post;
    $data = get_post_meta( $post->ID );

    if ( $column == '_my_custom_field' ) {    
        echo (isset($data['_my_custom_field']) ? $data['_my_custom_field'][0] : '');
    }
}

(信用转到WooCommerce show custom column