重新排列(按优先级排序)Woocommerce我的帐户字段

时间:2019-02-05 20:07:38

标签: wordpress plugins woocommerce hook-woocommerce account

如何重新排列my-account字段。我想在billing_address_1billing_state字段之后找到billing_city字段。

我使用了woocommerce_form_field_args钩子,然后使用了switch查找了每个arg

function bcod_wc_form_field_args( $args, $key, $value ){
switch ($key) {
        case 'billing_country':
            $args['class'] = array('hidden');
            break;
        case 'billing_address_1' :
            $args['priority'] = '85';// push down this field to bottom of state and city 
            $args['label'] = $args['label'] . ' Priority : ' . $args['priority'];
            $args['placeholder'] = 'خیابان اصلی ، خیابان فرعی ، کوچه ، پلاک';
            break;
        case 'billing_state' :
            $args['priority'] = '50';
            $args['label'] = $args['label'] . ' Priority : ' . $args['priority'];
            $args['class'] = array('form-row-first');
            break;
        case 'billing_city' :
            $args['priority'] = '55';
            $args['label'] = $args['label'] . ' Priority : ' . $args['priority'];
            $args['class'] = array('form-row-last');
            break;
        case 'billing_postcode' :
            $args['label'] = $args['label'] . ' Priority : ' . $args['priority'];
            $args['priority'] = '190';
            $args['class'] = array('form-row-first');
            break;
        case 'billing_email' :
            $args['label'] = $args['label'] . ' Priority : ' . $args['priority'];
            $args['priority'] = '80';
            $args['class'] = array('form-row-last');
            break;
        default:
            return $args;
            break;
        }
    return $args;
}

我希望billing_address_1字段位于statecity之后,但是此代码不会影响字段的种类。优先级已更改,但字段位于默认位置。此图像是我的结果: the-result-of-my-code

1 个答案:

答案 0 :(得分:1)

要重新排列“我的帐户”的“地址”结算字段,您需要使用类似以下内容的方法:

    func reloadYourRows(name: <anyname>) {
    let row = <your array name>.index(of: <name passing in>)
    let reloadPath = IndexPath(row: row!, section: 0)
    tableView.reloadRows(at: [reloadPath], with: .middle)
    }

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。