Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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 重新排列签出字段_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 重新排列签出字段

Php 重新排列签出字段,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我已使用此功能重新排列Woocommerce结帐页面上的订单字段: //Reorder checkout add_filter( 'woocommerce_checkout_fields', 'reorder_woo_fields' ); function reorder_woo_fields( $fields ) { $fields2['billing']['billing_first_name'] = $fields['billing'] ['billin

我已使用此功能重新排列Woocommerce结帐页面上的订单字段:

    //Reorder checkout
    add_filter( 'woocommerce_checkout_fields', 'reorder_woo_fields' ); 
    function reorder_woo_fields( $fields ) {
    $fields2['billing']['billing_first_name'] = $fields['billing']  ['billing_first_name'];
    $fields2['billing']['billing_last_name']  = $fields['billing']['billing_last_name'];
    $fields2['billing']['billing_company'] =  $fields['billing']['billing_company'];
    $fields2['billing']['billing_address_1']  = $fields['billing']['billing_address_1'];
    $fields2['billing']['billing_city']       = $fields['billing']['billing_city'];
    $fields2['billing']['billing_postcode']   = $fields['billing']['billing_postcode'];
    $fields2['billing']['billing_country']    = $fields['billing']['billing_country'];
    $fields2['billing']['billing_email']      = $fields['billing']['billing_email'];
    $fields2['billing']['billing_phone']      = $fields['billing']['billing_phone'];

    $fields2['shipping']['shipping_first_name'] = $fields['shipping']['shipping_first_name'];
    $fields2['shipping']['shipping_last_name'] = $fields['shipping']['shipping_last_name'];
    $fields2['shipping']['shipping_company'] =  $fields['shipping']['shipping_company'];
    $fields2['shipping']['shipping_address_1'] = $fields['shipping']['shipping_address_1'];
    $fields2['shipping']['shipping_city'] = $fields['shipping']['shipping_city'];
    $fields2['shipping']['shipping_postcode'] = $fields['shipping']['shipping_postcode'];
    $fields2['shipping']['shipping_country'] = $fields['shipping']['shipping_country'];

    // Add full width Classes and Clears to Adjustments    
    $fields2['billing']['billing_first_name'] = array(
        'label' => __('First Name', 'woocommerce'),
    'class'     => array('form-row-wide'),
    'clear'     => true,
    'required' => true
     );
     $fields2['billing']['billing_last_name'] = array(
    'label' => __('Last Name', 'woocommerce'),
    'class'     => array('form-row-wide'),
    'clear'     => true,
        'required' => true
     );
     $fields2['shipping']['shipping_first_name'] = array(
        'label' => __('First Name', 'woocommerce'),
    'class'     => array('form-row-wide'),
    'clear'     => true,
    'required' => true
     );
     $fields2['shipping']['shipping_last_name'] = array(
    'label' => __('Last Name', 'woocommerce'),
    'class'     => array('form-row-wide'),
    'clear'     => true,
        'required' => true
     );
     return $fields2;
     }
这是可行的,但是当启用调试模式时,我在chekcout页面上得到一个错误: 注意:第58行未定义索引:order in/html/wordpress/wp content/plugins/woocommerce/templates/checkout/form-shipping.php

警告:第58行/html/wordpress/wp content/plugins/woocommerce/templates/checkout/form-shipping.php中为foreach()提供的参数无效


aynone能理解这一点吗?

您可以尝试下面的代码对签出页面字段进行重新排序。您可以更改数组中字段的顺序

// for billing fields

add_filter("woocommerce_checkout_fields", "new_order_fields");

function new_order_fields($fields) {

    $order = array(
        "billing_company", 
        "billing_first_name", 
        "billing_last_name", 
        "billing_address_1", 
        "billing_address_2", 
        "billing_postcode", 
        "billing_country", 
        "billing_email", 
        "billing_phone"
    );
    foreach( $order as $field ) {
        $ordered_fields[$field] = $fields["billing"][$field];
    }

    $fields["billing"] = $ordered_fields;
    return $fields;    
}

// for shipping fields
add_filter("woocommerce_checkout_fields", "new_shiping_order_fields");

function new_shiping_order_fields($fields) {

    $order = array(   
        "shipping_city", 
        "shipping_postcode", 
        "shipping_country",    
        "shipping_first_name", 
        "shipping_last_name", 
        "shipping_company", 
        "shipping_address_1", 
        "shipping_address_2"

    );
    foreach( $order as $field ) {
        $ordered_fields[$field] = $fields["shipping"][$field];
    }

    $fields["shipping"] = $ordered_fields;
    return $fields;
}

您可以尝试使用下面的代码对签出页面字段进行重新排序。您可以更改数组中字段的顺序

// for billing fields

add_filter("woocommerce_checkout_fields", "new_order_fields");

function new_order_fields($fields) {

    $order = array(
        "billing_company", 
        "billing_first_name", 
        "billing_last_name", 
        "billing_address_1", 
        "billing_address_2", 
        "billing_postcode", 
        "billing_country", 
        "billing_email", 
        "billing_phone"
    );
    foreach( $order as $field ) {
        $ordered_fields[$field] = $fields["billing"][$field];
    }

    $fields["billing"] = $ordered_fields;
    return $fields;    
}

// for shipping fields
add_filter("woocommerce_checkout_fields", "new_shiping_order_fields");

function new_shiping_order_fields($fields) {

    $order = array(   
        "shipping_city", 
        "shipping_postcode", 
        "shipping_country",    
        "shipping_first_name", 
        "shipping_last_name", 
        "shipping_company", 
        "shipping_address_1", 
        "shipping_address_2"

    );
    foreach( $order as $field ) {
        $ordered_fields[$field] = $fields["shipping"][$field];
    }

    $fields["shipping"] = $ordered_fields;
    return $fields;
}

您可以在中找到有关这方面的完整指南

您正在定义一个新数组
$fields2
,该数组没有
woocommerce\u checkout\u fields
中所需的所有字段。您只需要像这样覆盖
$fields[“billing”]
$fields[“shipping”]

要删除字段(例如订单注释),您可以将此行放在函数中

unset($fields['order']['order_comments']); 

您可以在中找到有关这方面的完整指南

您正在定义一个新数组
$fields2
,该数组没有
woocommerce\u checkout\u fields
中所需的所有字段。您只需要像这样覆盖
$fields[“billing”]
$fields[“shipping”]

要删除字段(例如订单注释),您可以将此行放在函数中

unset($fields['order']['order_comments']); 

我看到的第一件事是,['billing']和['billing\u First\u name']之间有一个额外的空格。这可能是你的问题的原因我看到的第一件事是你在['billing']和['billing\u first\u name']之间有一个额外的空间。这可能是您出现问题的原因。这将只重新排列字段,但我还需要删除订单注释字段并为某些字段添加全宽(请参见上面的代码)…这将只重新排列字段,但我还需要删除订单注释字段并为某些字段添加全宽(请参见上面的代码)。。。