WooCommerce添加自定义字段集,如计费字段

时间:2013-10-28 作者:Nikhil Joshi

我正在从事电子商务功能,我需要将自定义字段集添加为配置文件字段,其中的字段作为帐单

以下是我的签出和注册表单中需要的字段

profile_first_name
profile_last_name
profile_company
profile_address_1
profile_address_2
profile_city
profile_postcode
profile_country
profile_state
profile_email
profile_phone
你能指导我如何在我的wordpress主题中设置添加所有上述字段,以及我应该使用什么操作或过滤器在签出表单中显示吗

提前感谢

尼基尔

2 个回复
最合适的回答,由SO网友:J G 整理而成

“使用操作和过滤器自定义签出字段”页面in the WooCommerce Codex might help you.

SO网友:helgatheviking

非常旧,但在搜索时仍会出现此问题,因此我将在我的文章中添加WooCommerce Customize Checkout Fields 以下是添加新签出字段的示例:

// Add a new checkout field
function kia_filter_checkout_fields($fields){
    $fields[\'extra_fields\'] = array(
            \'some_field\' => array(
                \'type\' => \'text\',
                \'required\'      => true,
                \'label\' => __( \'Some field\' )
                )
            );

    return $fields;
}
add_filter( \'woocommerce_checkout_fields\', \'kia_filter_checkout_fields\' );

// display the extra field on the checkout form
function kia_extra_checkout_fields(){ 

    $checkout = WC()->checkout(); ?>

    <div class="extra-fields">
    <h3><?php _e( \'Additional Fields\' ); ?></h3>

    <?php foreach ( $checkout->checkout_fields[\'extra_fields\'] as $key => $field ) : ?>

            <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>

        <?php endforeach; ?>
    </div>

<?php }
add_action( \'woocommerce_checkout_after_customer_details\' ,\'kia_extra_checkout_fields\' );

// save the extra field when checkout is processed
function kia_save_extra_checkout_fields( $order_id, $posted ){
    if( isset( $posted[\'some_field\'] ) ) {
        update_post_meta( $order_id, \'_some_field\', sanitize_text_field( $posted[\'some_field\'] ) );
    }
}
add_action( \'woocommerce_checkout_update_order_meta\', \'kia_save_extra_checkout_fields\', 10, 2 );

// display the extra data in the order admin panel
function kia_display_order_data_in_admin( $order ){  ?>
    <div class="order_data_column">
        <h4><?php _e( \'Extra Details\', \'woocommerce\' ); ?></h4>
        <?php 
            echo \'<p><strong>\' . __( \'Some field\' ) . \':</strong>\' . get_post_meta( $order->id, \'_some_field\', true ) . \'</p>\'; ?>
    </div>
<?php }
add_action( \'woocommerce_admin_order_data_after_order_details\', \'kia_display_order_data_in_admin\' );

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/