Suporte » Plugins » Obter lista de produtos do woocommerce

  • Resolvido adrianleite

    (@adrianleite)


    Olá Srs.(a)
    Estou precisando de uma ajuda.
    Estou desenvolvendo um plugin para WP-Woocommerce que deve alterar as propriedades de alguns produtos.

    Basicamente é: (Obs. Os produtos já estão cadastrados)
    Listar todos os produtos com uma determinada referencia e alterar seus status como “fora de estoque” ou vice-versa.

    Eu estou travado ainda na parte de listar os produtos… Dei uma olhada em alguns códigos que encontrei mas não consegui entende-los.

    O código abaixo foi o único que consegui alguma coisa, mas o mesmo eu tenho que informar o “ID” manualmente.

    $todos_produtos = new WC_Product_Factory();
    $produto = $todos_produtos->get_product(337);
    echo '>> '.$produto->get_price();

    Alguém pode me ajudar nesses problemas?
    Obrigado desde já.

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • Moderador Claudio Sanches

    (@claudiosanches)

    Eu estou travado ainda na parte de listar os produtos…

    Para listar produtos, tem que fazer da mesma forma que vai listar posts ou páginas no WordPress, que no caso é ou utilizando WP_Query ou get_posts().

    O código abaixo foi o único que consegui alguma coisa, mas o mesmo eu tenho que informar o “ID” manualmente.

    Nunca use o WC_Product_Factory(), esta classe não deve ser acessada diretamente fora do WooCommerce, o correto é utilizar wc_get_product() para retornar um objeto de produto.

    Desta forma uma vez que você faz um loop com WP_Query ou get_posts() você pode passar os ids ou os objetos do WP_Post para wc_get_product() e ter todas as informações do produto.

    Criador do tópico adrianleite

    (@adrianleite)

    Obrigado Claudio pela Luz…
    Consegui listar os produtos Segue exemplo:

    $args = array(
       'posts_per_page' => -1, // -1 Mostrar todos
       'post_type' => 'product'
    );
    $query = new WP_Query($args);
    // Checar resultado
    if ( $query->have_posts() ) {
       while ( $query->have_posts() ) {
          $query->the_post();
          $produto = wc_get_product(get_the_id());
          // Metodos da WC_Product
          echo $produto->get_title().'<br>';
       }
    }
    // Restore original post data.
    wp_reset_postdata();

    Agora preciso alterar o preço definitivo.
    Pelo método set_price() ele altera somente no momento.
    Alguém sabe como posso realizar a alteração do preço definitivamente??

    Moderador Claudio Sanches

    (@claudiosanches)

    Pode salvar utilizando a função _wc_save_product_price().
    Aqui tem mais detalhes sobre ela: https://docs.woothemes.com/wc-apidocs/function-_wc_save_product_price.html

    Criador do tópico adrianleite

    (@adrianleite)

    Perfeito Claudio… Obrigado pela ajuda.
    Usei a função _wc_save_product_price();
    Está atualizando os preços.

    Muito Obrigado.

    Moderador Claudio Sanches

    (@claudiosanches)

    🙂

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Obter lista de produtos do woocommerce’ está fechado para novas respostas.