繁体   English   中英

在woocommerce结帐中简化PHP

[英]Simplifying PHP in woocommerce checkout

我已经对此进行了重新排序和更改了WooCommerce结帐字段:

//Reorder checkout fields   
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_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_email']      = $fields['billing']['billing_email'];
    $fields2['billing']['billing_phone']      = $fields['billing']['billing_phone'];
    $fields2['billing']['billing_country']    = $fields['billing']['billing_country'];

    $fields2['shipping']['shipping_first_name'] = $fields['shipping']['shipping_first_name'];
    $fields2['shipping']['shipping_last_name'] = $fields['shipping']['shipping_last_name'];
    $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'];
    $fields2['order']['order_comments'] =  $fields['order']['order_comments']; 
    $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;
}

有没有办法组合和/或简化这一过程? 它的效果很好,但看起来又漫长又复杂。

这样的事情怎么样。

add_filter("woocommerce_checkout_fields", "reorder_woo_fields");

function reorder_woo_fields($fields) {

    $billing_order = array(
        "billing_first_name", 
        "billing_last_name", 
        "billing_address_1", 
        "billing_city", 
        "billing_postcode", 
        "billing_email", 
        "billing_phone", 
        "billing_country"
    );
    foreach($billing_order as $field)
    {
        $billing_fields[$field] = $fields["billing"][$field];
    }

    $shipping_order = array(
        "shipping_first_name",
        "shipping_last_name",
        "shipping_address_1",
        "shipping_city",
        "shipping_postcode",
        "shipping_country",
    );
    foreach($shipping_order as $field)
    {
        $shipping_fields[$field] = $fields["shipping"][$field];
    }


    $fields["billing"] = $billing_fields;
    $fields["shipping"] = $shipping_fields;

    return $fields;
}

编辑:

add_filter( 'woocommerce_billing_fields', 'add_custom_css_on_checkout', 10, 1 );
function add_custom_css_on_checkout( $address_fields ) {
    $address_fields['billing_first_name']['class'] = 'form-row-wide';
    $address_fields['billing_last_name']['class'] = 'form-row-wide';
    return $address_fields;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM