如何通过Woocommerce API将值发布到管理订单面板中的自定义列?

时间:2017-11-05 20:02:14

标签: php wordpress woocommerce hook-woocommerce woocommerce-rest-api

在Woocommerce中,我为管理订单列表页面创建了一个自定义列。

<?php 

add_filter( 'manage_edit-shop_order_columns', 'MY_COLUMNS_FUNCTION' );
function MY_COLUMNS_FUNCTION( $columns ) {
    $new_columns = ( is_array( $columns ) ) ? $columns : array();
    unset( $new_columns[ 'order_actions' ] );

    $new_columns['MY_COLUMN_ID_1'] = 'MY_COLUMN_1_TITLE';

    $new_columns[ 'order_actions' ] = $columns[ 'order_actions' ];
    return $new_columns;
}

然后,此列的自定义字段

add_action( 'manage_shop_order_posts_custom_column', 'MY_COLUMNS_VALUES_FUNCTION', 2 );
function MY_COLUMNS_VALUES_FUNCTION( $column ) {
    global $post;
    $data = get_post_meta( $post->ID );



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

但我不知道如何通过WooCommerce API将字符串发布到特定的自定义字段?

2 个答案:

答案 0 :(得分:1)

以下是如何在管理订单屏幕中添加自定义列的示例。它会在“操作”列之后添加您的列,并使用您的自定义字段数据填充它。您需要使用自己的字段名称替换“custom_column”值。

float

答案 1 :(得分:1)

我会稍微调整安德鲁的答案,以便更多地开始使用订单对象,并减少对后期元素的依赖。我非常确定WooCommerce最终会将它的核心元素移动到自定义表格中。

var ids = fields.Where(s => s.Key.Contains("[ID]")).Select(s => int.Parse(s.Value));