Я хотел бы добавить страну происхождения в продукты в woocommerce

Привет, я хотел бы добавить страну происхождения при добавлении продуктов, а затем сортировать продукты на основе страны происхождения. Могу ли я достичь этого?

wordpress,woocommerce,hook-woocommerce,

-2

Ответов: 1


0

Добавьте их в «functions.php» вашей темы.

// Display Field in Admin
add_action('woocommerce_product_options_general_product_data', 'woocommerce_product_country_field');
function woocommerce_product_country_field()
{
    global $woocommerce, $post;

    $countries_obj   = new WC_Countries();
    $options   = $countries_obj->__get('countries');

    echo '<div class="product_country_field">';
    woocommerce_wp_select(
        array(
            'id' => '_country_origin',
            'label' => __('Country of origin', 'woocommerce'),
            'options' => $options,
            'desc_tip' => 'true'
        )
    );
    echo '</div>';
}

// Save Fields
add_action('woocommerce_process_product_meta', 'woocommerce_product_country_fields_save');
function woocommerce_product_country_fields_save($post_id)
{  
    $woocommerce_country_origin = $_POST['_country_origin'];
    if (!empty($woocommerce_country_origin))
        update_post_meta($post_id, '_country_origin', esc_attr($woocommerce_country_origin));

}

// Sort Fields
function custom_add_country_ordering_args( $sort_args ) {       
    $orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
    switch( $orderby_value ) {

        case '_country_origin':
            $sort_args['orderby']  = 'meta_value';
            $sort_args['order']    = 'asc';
            $sort_args['meta_key'] = '_country_origin';
            break;      
    }

    return $sort_args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_add_country_ordering_args' );

function custom_add_country_orderby( $sortby ) {

    $sortby['_country_origin'] = __( 'Sort by Country of origin', 'woocommerce' );  

    return $sortby;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_add_country_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'custom_add_country_orderby' );

Обратите внимание, что продукты, имеющие «страну происхождения», будут отображаться только при сортировке.

WordPress, WooCommerce, крюк-WooCommerce,
Похожие вопросы
Яндекс.Метрика