WC_AJAX::add_attribute
Add an attribute row.
Method of the class: WC_AJAX{}
Hooks from the method
Returns
null. Nothing (null).
Usage
$result = WC_AJAX::add_attribute();
WC_AJAX::add_attribute() WC AJAX::add attribute code WC 10.6.2
public static function add_attribute() {
ob_start();
check_ajax_referer( 'add-attribute', 'security' );
if ( ! current_user_can( 'edit_products' ) || ! isset( $_POST['taxonomy'], $_POST['i'] ) ) {
wp_die( -1 );
}
$product_type = isset( $_POST['product_type'] ) ? sanitize_text_field( wp_unslash( $_POST['product_type'] ) ) : ProductType::SIMPLE;
$i = absint( $_POST['i'] );
$metabox_class = array();
$attribute = new WC_Product_Attribute();
$attribute->set_id( wc_attribute_taxonomy_id_by_name( sanitize_text_field( wp_unslash( $_POST['taxonomy'] ) ) ) );
$attribute->set_name( sanitize_text_field( wp_unslash( $_POST['taxonomy'] ) ) );
/* phpcs:disable WooCommerce.Commenting.CommentHooks.MissingHookComment */
$attribute->set_visible( apply_filters( 'woocommerce_attribute_default_visibility', 1 ) );
$attribute->set_variation(
apply_filters(
'woocommerce_attribute_default_is_variation',
ProductType::VARIABLE === $product_type ? 1 : 0,
$product_type
)
);
/* phpcs: enable */
if ( $attribute->is_taxonomy() ) {
$metabox_class[] = 'taxonomy';
$metabox_class[] = $attribute->get_name();
}
include __DIR__ . '/admin/meta-boxes/views/html-product-attribute.php';
wp_die();
}