WC_Tax::create_tax_class( string $name, string $slug = '' )

Create a new tax class.


Description Description


Parameters Parameters

$name

(Required) Name of the tax class to add.

$slug

(Optional) (optional) Slug of the tax class to add. Defaults to sanitized name.

Default value: ''


Top ↑

Return Return

(WP_Error|array) Returns name and slug (array) if the tax class is created, or WP_Error if something went wrong.


Top ↑

Source Source

File: includes/class-wc-tax.php

	public static function create_tax_class( $name, $slug = '' ) {
		global $wpdb;

		if ( empty( $name ) ) {
			return new WP_Error( 'tax_class_invalid_name', __( 'Tax class requires a valid name', 'woocommerce' ) );
		}

		$existing       = self::get_tax_classes();
		$existing_slugs = self::get_tax_class_slugs();

		if ( in_array( $name, $existing, true ) ) {
			return new WP_Error( 'tax_class_exists', __( 'Tax class already exists', 'woocommerce' ) );
		}

		if ( ! $slug ) {
			$slug = sanitize_title( $name );
		}

		if ( in_array( $slug, $existing_slugs, true ) ) {
			return new WP_Error( 'tax_class_slug_exists', __( 'Tax class slug already exists', 'woocommerce' ) );
		}

		$insert = $wpdb->insert(
			$wpdb->wc_tax_rate_classes,
			array(
				'name' => $name,
				'slug' => $slug,
			)
		);

		if ( is_wp_error( $insert ) ) {
			return new WP_Error( 'tax_class_insert_error', $insert->get_error_message() );
		}

		wp_cache_delete( 'tax-rate-classes', 'taxes' );

		return array(
			'name' => $name,
			'slug' => $slug,
		);
	}

Top ↑

Changelog Changelog

Changelog
Version Description
3.7.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.