HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wp-recipe-maker/assets/js/shared/CategoryTerms.js
/**
 * Utility functions for working with category terms.
 */

/**
 * Convert an array of term names to term objects.
 * Creates term objects that will be handled by WordPress when saving.
 * Note: Terms are no longer pre-loaded to improve performance on sites with many terms.
 * 
 * @param {string} categoryKey - The category key (e.g., 'course', 'cuisine')
 * @param {string[]} termNames - Array of term names to convert
 * @returns {Object[]} Array of term objects with term_id and name properties
 */
export function convertTermNamesToObjects(categoryKey, termNames) {
    const categoryData = wprm_admin_modal.categories[categoryKey];
    if (!categoryData) {
        return [];
    }
    
    const isCreatable = categoryData.creatable !== false;
    const terms = [];
    
    termNames.forEach(termName => {
        const trimmedTermName = termName.trim();
        
        // Skip empty terms
        if (!trimmedTermName) {
            return;
        }
        
        // For non-creatable categories (like suitablefordiet), WordPress will validate
        // that the term exists when saving. We'll create the term object here and let
        // WordPress handle the validation.
        
        // Create term object - WordPress will match by name or create if needed
        const term = {
            term_id: trimmedTermName, // Will be converted to ID by WordPress if term exists
            name: trimmedTermName,
        };
        
        terms.push(term);
    });
    
    return terms;
}