How to add Wysiwyg Editor in woocommerce product categories for description?

LearningWordpress

There is a field for adding category descriptions in the woocommerce product category but it does not allow to addition of HTML content for that we need a WYSIWYG editor.

You can add the WYSIWYG editor by using the below code.

Simply copy and paste the code in your function file.

<?php
/********************************************Add a custom filed in the categoy*************************/
add_action( ‘init’, ‘wpm_product_cat_register_meta’ );
/**
 * Register details product_cat meta.
 *
 * Register the details metabox for WooCommerce product categories.
 *
 */
function wpm_product_cat_register_meta() {
register_meta( ‘term’, ‘details’, ‘wpm_sanitize_details’ );
}
/**
 * Sanitize the details custom meta field.
 *
 * @param  string $details The existing details field.
 * @return string          The sanitized details field
 */
function wpm_sanitize_details( $details ) {
return wp_kses_post( $details );
}
add_action( ‘product_cat_add_form_fields’, ‘wpm_product_cat_add_details_meta’ );
/**
 * Add a details metabox to the Add New Product Category page.
 *
 * For adding a details metabox to the WordPress admin when
 * creating new product categories in WooCommerce.
 *
 */
function wpm_product_cat_add_details_meta() {
wp_nonce_field( basename( __FILE__ ), ‘wpm_product_cat_details_nonce’ );
?>
<div class=”form-field”>
<label for=”wpm-product-cat-details”><?php esc_html_e( ‘Details’, ‘wpm’ ); ?></label>
<textarea name=”wpm-product-cat-details” id=”wpm-product-cat-details” rows=”5″ cols=”40″></textarea>
<p class=”description”><?php esc_html_e( ‘Detailed category info to appear below the product list’, ‘wpm’ ); ?></p>
</div>
<?php
}
add_action( ‘product_cat_edit_form_fields’, ‘wpm_product_cat_edit_details_meta’ );
/**
 * Add a details metabox to the Edit Product Category page.
 *
 * For adding a details metabox to the WordPress admin when
 * editing an existing product category in WooCommerce.
 *
 * @param  object $term The existing term object.
 */
function wpm_product_cat_edit_details_meta( $term ) {
$product_cat_details = get_term_meta( $term->term_id, ‘details’, true );
if ( ! $product_cat_details ) {
$product_cat_details = ”;
}
$settings = array( ‘textarea_name’ => ‘wpm-product-cat-details’ );
?>
<tr class=”form-field”>
<th scope=”row” valign=”top”><label for=”wpm-product-cat-details”><?php esc_html_e( ‘Details’, ‘wpm’ ); ?></label></th>
<td>
<?php wp_nonce_field( basename( __FILE__ ), ‘wpm_product_cat_details_nonce’ ); ?>
<?php wp_editor( wpm_sanitize_details( $product_cat_details ), ‘product_cat_details’, $settings ); ?>
<p class=”description”><?php esc_html_e( ‘Detailed category info to appear below the product list’,’wpm’ ); ?></p>
</td>
</tr>
<?php
}
add_action( ‘create_product_cat’, ‘wpm_product_cat_details_meta_save’ );
add_action( ‘edit_product_cat’, ‘wpm_product_cat_details_meta_save’ );
/**
 * Save Product Category details meta.
 *
 * Save the product_cat details meta POSTed from the
 * edit product_cat page or the add product_cat page.
 *
 * @param  int $term_id The term ID of the term to update.
 */
function wpm_product_cat_details_meta_save( $term_id ) {
if ( ! isset( $_POST[‘wpm_product_cat_details_nonce’] ) || ! wp_verify_nonce( $_POST[‘wpm_product_cat_details_nonce’], basename( __FILE__ ) ) ) {
return;
}
$old_details = get_term_meta( $term_id, ‘details’, true );
$new_details = isset( $_POST[‘wpm-product-cat-details’] ) ? $_POST[‘wpm-product-cat-details’] : ”;
if ( $old_details && ” === $new_details ) {
delete_term_meta( $term_id, ‘details’ );
} else if ( $old_details !== $new_details ) {
update_term_meta(
$term_id,
‘details’,
wpm_sanitize_details( $new_details )
);
}
}
add_action( ‘woocommerce_after_shop_loop’, ‘wpm_product_cat_display_details_meta’ );
/**
 * Display details meta on Product Category archives.
 *
 */
function wpm_product_cat_display_details_meta() {
if ( ! is_tax( ‘product_cat’ ) ) {
return;
}
$t_id = get_queried_object()->term_id;
$details = get_term_meta( $t_id, ‘details’, true );
if ( ” !== $details ) {
?>
<div class=”col-md-12″>
<div class=”product-cat-details”>
<?php echo apply_filters( ‘the_content’, wp_kses_post( $details ) ); ?>
</div>
</div>
<?php
}
}

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Must Read

You May Also Like

Everything you must know about navratri 2024
Pran Pratishtha Of Lord Ram At Ayodhya