wc_delete_attribute() WC 3.2.0
Delete attribute by ID.
Хуки из функции
Возвращает
true/false.
Использование
wc_delete_attribute( $id );
- $id(число) (обязательный)
- Attribute ID.
Список изменений
С версии 3.2.0 | Введена. |
Код wc_delete_attribute() wc delete attribute WC 5.0.0
function wc_delete_attribute( $id ) {
global $wpdb;
$name = $wpdb->get_var(
$wpdb->prepare(
"
SELECT attribute_name
FROM {$wpdb->prefix}woocommerce_attribute_taxonomies
WHERE attribute_id = %d
",
$id
)
);
$taxonomy = wc_attribute_taxonomy_name( $name );
/**
* Before deleting an attribute.
*
* @param int $id Attribute ID.
* @param string $name Attribute name.
* @param string $taxonomy Attribute taxonomy name.
*/
do_action( 'woocommerce_before_attribute_delete', $id, $name, $taxonomy );
if ( $name && $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_id = %d", $id ) ) ) {
if ( taxonomy_exists( $taxonomy ) ) {
$terms = get_terms( $taxonomy, 'orderby=name&hide_empty=0' );
foreach ( $terms as $term ) {
wp_delete_term( $term->term_id, $taxonomy );
}
}
/**
* After deleting an attribute.
*
* @param int $id Attribute ID.
* @param string $name Attribute name.
* @param string $taxonomy Attribute taxonomy name.
*/
do_action( 'woocommerce_attribute_deleted', $id, $name, $taxonomy );
wp_schedule_single_event( time(), 'woocommerce_flush_rewrite_rules' );
delete_transient( 'wc_attribute_taxonomies' );
WC_Cache_Helper::invalidate_cache_group( 'woocommerce-attributes' );
return true;
}
return false;
}