Snippets

Pavel Petrov How to add additional fields to WooCommerce category

Created by Pavel Petrov
<?php
//...
add_action('product_cat_add_form_fields', function() {
?>   
    <div class="form-field">
        <label for="second_description"><?php _e('Second description', 'wh'); ?></label>
        <?php wp_editor( '', 'second_description', ['textarea_name' => 'second_description']  ); ?>
    </div>
<?php
}, 10, 1);

add_action('product_cat_edit_form_fields', function($term) {
    //getting term ID
    $term_id = $term->term_id;
    // retrieve the existing value(s) for this meta field.
    $second_description = get_term_meta($term_id, 'second_description', true);
?>  
    <tr class="form-field">
        <th scope="row" valign="top"><label for="second_description"><?php _e('Second description', 'wh'); ?></label></th>
        <td>
            <?php wp_editor( $second_description, 'second_description', ['textarea_name' => 'second_description'] ); ?>
        </td>
    </tr>
<?php
}, 10, 1);

add_action('edited_product_cat', 'wb_save_taxonomy_custom_meta', 10, 1);
add_action('create_product_cat', 'wb_save_taxonomy_custom_meta', 10, 1);
// Save extra taxonomy fields callback function.
function wb_save_taxonomy_custom_meta($term_id) {
    $second_description = filter_input(INPUT_POST, 'second_description');
    update_term_meta($term_id, 'second_description', $second_description);
}

add_action( 'woocommerce_after_main_content', function(){
    if ( is_tax( array( 'product_cat', 'product_tag' ) ) && 0 === absint( get_query_var( 'paged' ) ) ) {
        $term = get_queried_object();
        $term_id = $term->term_id;
		$second_description = get_term_meta($term_id, 'second_description', true);
		if ( $second_description ) {
			echo '<div class="term-description">' . $second_description . '</div>';
		}
	}
}, 9 );

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.