Suporte » Gerenciamento de conteúdo » Associar categoria a um produtos apos adiciona-lo via API

  • Resolvido Felipe Oliveira

    (@felipesudrj)


    Olá Galera, será que poderiam ajudar esse jovem iniciante em WP por favor? Estou usando WooCommerce.
    Minha dúvida é a seguinte: como inserir a categoria de um produto de maneira programática apos a inclusão do produto.

    Eu tentei usar o código abaixo mais não deu certo na inclusão.

    function atualizar_categoria(  $post_id, $post, $update){
        //$data = json_decode(file_get_contents("php://input"));
        //$codigo_da_categoria = $data->codigo; 
        $codigo_da_categoria = 98;
        
        $product = wc_get_product( $post_id );
        $product->set_name('My Product 1');
        $product->set_category_ids($codigo_da_categoria);
        $product->save();
    }
    add_action( 'save_post', 'atualizar_categoria', 10, 3 );

    Estou no caminho certo ou totalmente errado?
    Acontece que minha aplicação via api manda.
    Engraçado é que o nome ele modifica (coloquei só para testar)

    Agradeceria se pudessem me dar uma luz e dizer onde estou errando ou o que posso fazer para melhorar essa lógica. Conto com os mais experientes em WP! hehe

    • Este tópico foi modificado 5 months atrás por  Mário Valney. Motivo: Código
Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá, tudo bem?

    Não apareceu nenhum erro no log?

    Pelo nome/documentação, set_category_ids deve receber uma array de IDs e não um ID.

    Tente: $product->set_category_ids([$codigo_da_categoria]);

    Lembrando que categoria de produto é diferente de categoria de posts.

    Abraços,

    Nenhum erro no log, mais eu consegui resolver o problema.

    function alt_update_categoria_custom($data){
    $data->set_category_ids(array(29,97,98));
    }
    add_action( ‘woocommerce_before_product_object_save’, ‘alt_update_categoria_custom’);
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Show. Era usar array então.

    Abraços,

    Não, na verdade o problema estava em utilizar o hook post_save

    add_action( 'save_post', 'atualizar_categoria', 10, 3 );

    ele não atualiza a categoria por o WC sobre escrevia os IDS que eu setava.

    Da forma acima isso não acontece mais.

    add_action( ‘woocommerce_before_product_object_save’, ‘alt_update_categoria_custom’);

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Você deve estar conectado para responder a este tópico.