仅在一些城市出售woocommerce

时间:2016-06-11 20:59:52

标签: wordpress woocommerce registration


我的帐户页面中, 我想使用下面的类似代码在特定的"城市"或者"邮政编码",以下代码用于在特定的状态下销售":

/**
 * Sell only in Alger & Zeralda
 */

    function wc_sell_only_states( $states ) {
        $states['DZ'] = array(
            'ALG' => __( 'Alger', 'woocommerce' ),
            'ZLD' => __( 'Zeralda', 'woocommerce' ),
        );
        return $states;
    }
    add_filter( 'woocommerce_states', 'wc_sell_only_states' );

我应该使用或修改什么?

我尝试了这个,但它显示了"错误代码500":

// define the woocommerce_countries_base_city callback 
function filter_woocommerce_countries_base_city( $var ) { 
    // make filter magic happen here... 
    $var['DZ'] = array(
        'ALG' => __( 'Alger', 'woocommerce' ),
        'ZLD' => __( 'Zeralda', 'woocommerce' ),
    );
    return $var; 
}; 

// add the filter 
add_filter( 'woocommerce_countries_base_city', 'filter_woocommerce_countries_base_city', 10, 1 );

先谢谢你了!

2 个答案:

答案 0 :(得分:0)

试试这个对我有用!!

            add_filter( 'woocommerce_form_field_args', 'custom_form_field_args', 10, 3 );
            function custom_form_field_args( $args, $key, $value ) { 
                if ( $args['id'] == 'billing_city' ) {
                 $args = array(
                        'label' => __( 'Town / City', 'woocommerce' ),
                        'required' => TRUE,
                        'clear' => TRUE,
                        'type' => 'select',
                        'options' =>  array(
                            '' => ('Select City' ),
                    'Bangalore' => ('Bangalore' ),
                    'Mysore' => ('Mysore' )
                    ),
                        'class' => array( 'update_totals_on_change' )
                    );
                } // elseif … and go on 

                return $args;
            };

答案 1 :(得分:0)

有一个更简单的解决方案。该方法还取决于下面列出的一些假设:

假设:如果您只想将City字段设置为一个City,则可以使用jQuery。使用jQuery,您将设置字段的值并禁用字段以避免更改City字段值。

一个粗略的例子是:

jQuery('#billing_city').val('USA').attr('disabled','disabled');

您只需要添加此行,使其在Checkout页面上执行。