APF_Demo_CustomFieldType_Select2::createTerm PHP Method

createTerm() public static method

Structure of Response Array

It must be an associative array with the element keys of id and text, and optionally error/ array( 'id' => 223, 'text' => 'WordPress' ) array( 'error' => 'Something went wrong' )
public static createTerm ( $aQueries, $aFieldset ) : array
return array
    public static function createTerm($aQueries, $aFieldset)
    {
        $_sTermName = $aQueries['tag'];
        $_oTerm = get_term_by('name', $_sTermName, 'post_tag');
        $_bTermExists = is_object($_oTerm) && isset($_oTerm->term_id);
        if ($_bTermExists) {
            $_iTermID = $_oTerm->term_id;
            return array('id' => $_iTermID, 'text' => $_sTermName, 'note' => 'The term already existed. ID: ' . $_iTermID . ' Name: ' . $_sTermName);
        }
        $_aoResult = wp_insert_term($_sTermName, 'post_tag');
        if (is_wp_error($_aoResult)) {
            return array('error' => $_aoResult->get_error_message());
        }
        $_aResults = $_aoResult;
        // e.g. array('term_id'=>12,'term_taxonomy_id'=>34))
        $_oTerm = get_term($_aResults['term_id'], 'post_tag');
        return array('id' => $_oTerm->term_id, 'text' => $_oTerm->name, 'note' => 'A new term has been created. ID: ' . $_oTerm->term_id . ' Name: ' . $_oTerm->name);
    }