Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Woocommerce管理订单列表中显示自定义元字段并使其可搜索_Php_Wordpress_Search_Woocommerce_Orders - Fatal编程技术网

Php 在Woocommerce管理订单列表中显示自定义元字段并使其可搜索

Php 在Woocommerce管理订单列表中显示自定义元字段并使其可搜索,php,wordpress,search,woocommerce,orders,Php,Wordpress,Search,Woocommerce,Orders,我们使用下面的function.php代码在checkout中提供一个多选字段。我们将其添加到订单页面,并将其包含在电子邮件中 我们如何将其也包括在订单概述管理页面中,使其可搜索和排序 // add select box for platform used at checkout add_action('woocommerce_after_order_notes', 'wps_add_select_checkout_field'); function wps_add_select_checkou

我们使用下面的function.php代码在checkout中提供一个多选字段。我们将其添加到订单页面,并将其包含在电子邮件中

我们如何将其也包括在订单概述管理页面中,使其可搜索和排序

// add select box for platform used at checkout
add_action('woocommerce_after_order_notes', 'wps_add_select_checkout_field');
function wps_add_select_checkout_field( $checkout ) {
    echo '<h3>'.__('').'</h3>';
    woocommerce_form_field( 'platform', array(
        'type'          => 'select',
        'class'         => array( 'wps-drop' ),
        'label'         => __( 'On which platform will you be using it?' ),
        'options'       => array(
            'blank'     => __( '-- Choose an option --', 'wps' ),
            'app1'  => __( 'app1', 'wps' ),
            'app2'  => __( 'app2', 'wps' ),
            'app3'  => __( 'app3', 'wps' )
        )
    ), $checkout->get_value( 'platform' ) );
}

// Process the checkout
 add_action('woocommerce_checkout_process', 'wps_select_checkout_field_process');
 function wps_select_checkout_field_process() {
    global $woocommerce;

    // Check if set, if its not set add an error.
    if ($_POST['platform'] == "blank")
        wc_add_notice( '<strong>Please select your primary trading platform that you will be using with our strategy</strong>', 'error' );
 }


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

 // Display field value on the order edition page
add_action( 'woocommerce_admin_order_data_after_billing_address', 'wps_select_checkout_field_display_admin_order_meta', 10, 1 );
function wps_select_checkout_field_display_admin_order_meta($order){
    echo '<p><strong>'.__('Primary Platform').':</strong> ' . get_post_meta( $order->id, 'platform', true ) . '</p>';
}

// Add selection field value to emails
add_filter('woocommerce_email_order_meta_keys', 'wps_select_order_meta_keys');
function wps_select_order_meta_keys( $keys ) {
    $keys['platform:'] = 'platform';
    return $keys;
}
//为签出时使用的平台添加选择框
添加操作(“订单注释后的woocommerce”和“wps添加”和“选择签出”字段);
函数wps\u添加\u选择\u签出\u字段($checkout){
回音'.'.'.'';
woocommerce\u表单\u字段('platform',数组(
'类型'=>'选择',
'class'=>数组('wps drop'),
“label'=>”(您将在哪个平台上使用它?),
“选项”=>数组(
“blank'=>”('--选择一个选项--',“wps”),
“app1”=>uuuuuuu('app1','wps'),
“app2”=>uuuuuuu('app2','wps'),
“app3”=>\(“app3”、“wps”)
)
),$checkout->get_value('platform');
}
//处理结帐
添加操作('woocommerce\u checkout\u process'、'wps\u select\u checkout\u field\u process');
函数wps_选择_签出_字段_进程(){
全球商业;
//检查是否已设置,如果未设置,则添加错误。
如果($_POST['platform']==“blank”)
wc_添加_通知(“请选择您将用于我们策略的主要交易平台,”,“错误”);
}
//使用字段值更新订单元
添加操作(“woocommerce\u checkout\u update\u order\u meta”、“wps\u select\u checkout\u field\u update\u order\u meta”);
函数wps\u选择\u签出\u字段\u更新\u订单\u元($order\u id){
如果($发布['platform'])更新发布元($订单id,'platform',esc属性($发布['platform']);
}
//在订单版本页面上显示字段值
添加操作('woocommerce\u admin\u order\u data\u after\u billing\u address','wps\u select\u checkout\u field\u display\u admin\u order\u meta',10,1);
功能wps\u选择\u签出\u字段\u显示\u管理\u订单\u元($order){
回显“”。“(“主平台”):”。获取“post”meta($order->id,“Platform”,true)。“

”; } //将选择字段值添加到电子邮件 添加过滤器(“woocommerce\u email\u order\u meta\u keys”、“wps\u select\u order\u meta\u keys”); 功能wps\u选择\u顺序\u元\u键($keys){ $keys['platform:']='platform'; 返回$keys; }
以下是在管理订单列表中添加自定义列“平台”以及在搜索中添加此自定义字段元键的方法:

// ADDING A CUSTOM COLUMN TITLE TO ADMIN ORDER LIST
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 12, 1 );
function custom_shop_order_column($columns)
{
    // Set "Actions" column after the new colum
    $action_column = $columns['order_actions']; // Set the title in a variable
    unset($columns['order_actions']); // remove  "Actions" column


    //add the new column "Platform"
    $columns['order_platform'] = '<span>'.__( 'Platform','woocommerce').'</span>'; // title

    // Set back "Actions" column
    $columns['order_actions'] = $action_column;

    return $columns;
}

// ADDING THE DATA FOR EACH ORDERS BY "Platform" COLUMN
add_action( 'manage_shop_order_posts_custom_column' , 'custom_order_list_column_content', 10, 2 );
function custom_order_list_column_content( $column, $post_id )
{

    // HERE get the data from your custom field (set the correct meta key below)
    $platform = get_post_meta( $post_id, 'platform', true );
    if( empty($platform)) $platform = '';

    switch ( $column )
    {
        case 'order_platform' :
            echo '<span>'.$platform.'</span>'; // display the data
            break;
    }
}

// MAKE 'PLATFORM' METAKEY SEARCHABLE IN THE SHOP ORDERS LIST
add_filter( 'woocommerce_shop_order_search_fields', 'platform_search_fields', 10, 1 );
function platform_search_fields( $meta_keys ){
    $meta_keys[] = 'platform';
    return $meta_keys;
}
//向管理订单列表添加自定义列标题
添加过滤器('manage_edit-shop_order_columns','custom_shop_order_column',12,1);
函数自定义\车间\订单\列($columns)
{
//在新列后设置“操作”列
$action\u column=$columns['order\u actions'];//在变量中设置标题
取消设置($columns['order_actions']);//删除“actions”列
//添加新列“平台”
$columns['order_platform']=''。uu('platform','woocommerce')。';//标题
//设置“操作”列
$columns['order\u actions']=$action\u column;
返回$columns;
}
//按“平台”列添加每个订单的数据
添加操作('manage_shop_order_posts_custom_column'、'custom_order_list_column_content',10,2);
函数自定义\u顺序\u列表\u列\u内容($column,$post\u id)
{
//这里从自定义字段获取数据(在下面设置正确的元键)
$platform=get_post_meta($post_id,'platform',true);
如果(空($platform))$platform='';
开关($列)
{
“订单平台”案例:
回显“.$platform.”;//显示数据
打破
}
}
//使“平台”元键可在车间订单列表中搜索
添加过滤器('woocommerce\u shop\u order\u search\u fields'、'platform\u search\u fields',10,1);
功能平台搜索字段($meta\u键){
$meta_keys[]=“平台”;
返回$meta_密钥;
}
代码放在活动子主题(活动主题或任何插件文件)的function.php文件中

测试和工作