Post ensinando a como adicionar um Atributo programaticamente no Woocommerce e como relacionar ele e um determinado valor à um produto (pelo ID)
Woocommerce é um plugin que adiciona as funcionalidades de comércio eletrônico ao WordPress
Adicione a função a seguir no arquivo functions.php do tema que está sendo utilizado
function create_product_attribute( $label_name ){ global $wpdb; $slug = sanitize_title( $label_name ); if ( strlen( $slug ) >= 28 ) { return new WP_Error( 'invalid_product_attribute_slug_too_long', sprintf( __( 'Name "%s" is too long (28 characters max). Shorten it, please.', 'woocommerce' ), $slug ), array( 'status' => 400 ) ); } elseif ( wc_check_if_attribute_name_is_reserved( $slug ) ) { return new WP_Error( 'invalid_product_attribute_slug_reserved_name', sprintf( __( 'Name "%s" is not allowed because it is a reserved term. Change it, please.', 'woocommerce' ), $slug ), array( 'status' => 400 ) ); } elseif ( taxonomy_exists( wc_attribute_taxonomy_name( $label_name ) ) ) { return new WP_Error( 'invalid_product_attribute_slug_already_exists', sprintf( __( 'Name "%s" is already in use. Change it, please.', 'woocommerce' ), $label_name ), array( 'status' => 400 ) ); } $data = array( 'attribute_label' => $label_name, 'attribute_name' => $slug, 'attribute_type' => 'select', 'attribute_orderby' => 'name', 'attribute_public' => 0, // Enable archives ==> true (or 1) ); $results = $wpdb->insert( "{$wpdb->prefix}woocommerce_attribute_taxonomies", $data ); if ( is_wp_error( $results ) ) { return new WP_Error( 'cannot_create_attribute', $results->get_error_message(), array( 'status' => 400 ) ); } $id = $wpdb->insert_id; do_action('woocommerce_attribute_added', $id, $data); wp_schedule_single_event( time(), 'woocommerce_flush_rewrite_rules' ); delete_transient('wc_attribute_taxonomies'); }
Para adicionar o atributo basta realizar a chamada da função
create_product_attribute( 'TESTE 2' );
Lembrando que o arquivo function.php é carregado/executado em cada requisição de página realizada no WordPress.
Na sequência você pode relacionar o atributo recém criado ao produto utilizando:
$term_taxonomy_ids = wp_set_object_terms( get_the_ID(), 'ATTRIBUTE_VALUE', 'pa_ATTRIBUTE', true ); $thedata = Array( 'pa_ATTRIBUTE'=>Array( 'name'=>'pa_ATTRIBUTE', 'value'=>'ATTRIBUTE_VALUE', 'is_visible' => '1', 'is_variation' => '1', 'is_taxonomy' => '1' ) ); update_post_meta( get_the_ID(),'_product_attributes',$thedata);
Observação:
Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…
Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…
Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…
Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…
Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…
Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…