WPML

O WPML Multilingual & Multicurrency for WooCommerce é compatível com a REST API do WordPress. Usando a REST API, você agora pode criar, ler, atualizar e excluir conteúdo traduzido do WooCommerce.


Este documento é destinado a desenvolvedores que querem aproveitar esses recursos e oferecer uma experiência multilíngue do WooCommerce em seus plugins, sites e aplicativos.

Requisitos


Para usar a REST API com o WPML Multilingual & Multicurrency for WooCommerce, você precisa do seguinte:

Configurando a biblioteca de cliente


Como mencionado, você precisa da biblioteca de cliente PHP da REST API do WooCommerce. Essa biblioteca é um wrapper PHP que permite a interação com a REST API do WooCommerce de uma forma mais direta. Você também pode usar outras bibliotecas de cliente.

A configuração da biblioteca dentro do seu aplicativo envolve algumas etapas:

    1. Baixe os arquivos da biblioteca para o servidor do seu site usando o seguinte comando do Composer:
composer require automattic/woocommerce
    1. Inclua o arquivo de carregamento automático da biblioteca, autoload.php, no início do seu código PHP usando a função require.
REST API do WCML - incluindo o arquivo de carregamento automático
require __DIR__ . '/vendor/autoload.php';

use Automattic\WooCommerce\Client;

$woocommerce = new Client(

   'http://example.com',

   'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',

   'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',

   [

       'wp_api' => true,

       'version' => 'wc/v3',

   ]

);
  • Gere os valores de Chave de consumidor e Segredo de consumidor. Para fazer isso, vá para WooCommerceConfigurações e clique na aba API. Lá, clique na sub-aba Chaves/Aplicativos e clique em Adicionar chave. No formulário que aparece, insira a Descrição, o Usuário e as Permissões que você quer conceder ao usuário e clique em Gerar chave de API.
  • Adicione os valores gerados de Chave de consumidor e Segredo de consumidor ao seu código PHP.
  •  'ck_61f94473aab0445da506e095e664f5d65b153f45'; 'cs_7e60f84b6c87554d249b1ad797d6201566c1009e'; 
    1. Configure as opções para usar a biblioteca. Você pode encontrar a descrição de todas as opções na página oficial.

    Usando a REST API


    Agora que você configurou a biblioteca no seu código PHP, você pode começar a desenvolver diferentes ações para o seu código executar. A lista a seguir apresenta todas as principais ações que você pode realizar usando a REST API e o WPML Multilingual & Multicurrency for WooCommerce.

    Visualizar pedidos


    Ao adicionar o parâmetro lang à requisição, você pode retornar o conteúdo dos pedidos em idiomas especificados. A única condição é que os produtos estejam traduzidos para o respectivo idioma. Uma aplicação disso é ver os pedidos no idioma padrão do site.

    Exemplo: Obter apenas os pedidos feitos em francês.

    $orders = $woocommerce->get('orders', array( 'per_page' => 25, 'lang' => 'fr' ) );

    Documentação relacionada do WooCommerce: Listar todos os pedidos

    Visualizar um único pedido


    Ao fornecer um parâmetro lang para a requisição, se o pedido tiver sido feito em um idioma diferente, todos os itens, se existirem, serão exibidos como traduções no idioma especificado.

    Exemplo: Ver o conteúdo do pedido #110 em inglês.

    $order = $woocommerce->get('orders/110', array( 'lang' => 'en' ) );

    Documentação relacionada do WooCommerce: Recuperar um pedido

    Obter produtos


    Ao adicionar o parâmetro lang, você pode obter produtos em um idioma especificado. Para obter todos os produtos em todos os idiomas, o parâmetro lang deve ser definido como all.

    Exemplo: Obter apenas os produtos em espanhol.

    $products = $woocommerce->get('products', array( 'per_page' => 25, 'lang' => 'es' ) );

    Documentação relacionada do WooCommerce: Listar todos os produtos

    Visualizar um único produto


    Os dados retornados incluirão informações de idioma e tradução. Além disso, se preços personalizados em moedas secundárias estiverem definidos e o modo multimoeda estiver ativado e configurado, esses preços também serão incluídos.

    Exemplo:

    $product = $woocommerce->get('products/99');

    O resultado deste exemplo seria semelhante ao seguinte:

    Visualizar um único produto
    => stdClass Object
            (
                [title] => An English product
                [id] => 28
                [created_at] => 2015-06-08T08:56:49Z
                [updated_at] => 2015-06-08T08:56:49Z
                [type] => simple
                [status] => publish
                [downloadable] =>
                [virtual] =>
                [permalink] => http://example.com/shop/a-simple-english-product
                [sku] =>
                [price] => 100.00
                [regular_price] => 100.00
                [sale_price] =>
                [price_html] => $100.00
                …
                [variations] => Array
                    (
                    )
      
                [parent] => Array
                    (
                    )
      
                [translations] => stdClass Object
                    (
                        [bg] => 31
                        [es] => 30
                    )
      
               [lang] => en
            )

    Documentação relacionada do WooCommerce: Recuperar um produto

    Obter termos de taxonomia de produto (categorias de produto, tags, atributos, classes de entrega)


    Ao adicionar o parâmetro lang, você pode obter termos de taxonomia de produto em um idioma especificado. Para obter todos os termos em todos os idiomas, o parâmetro lang deve ser definido como all.

    Exemplo: Obter categorias em todos os idiomas.

    $categories= $woocommerce->get('products/categories', array( 'per_page' => 10, 'lang' => 'all' ) );

    Documentação relacionada do WooCommerce: Listar todas as categorias de produto

    Relatórios de vendas


    Ao adicionar o parâmetro currency, você pode obter relatórios em uma moeda especificada.
    Relatório de vendas
    $query = [ 'period' => 'year', 'currency' => 'EUR' ];
    $woocommerce->get( 'reports/sales', $query );

    Documentação relacionada do WooCommerce: Recuperar relatório de vendas

    Relatórios de mais vendidos


    Ao adicionar o parâmetro lang, você pode obter relatórios em um idioma especificado.
    Mais vendidos
    $query = [ 'lang' => 'fr' ];
    $woocommerce->get( 'reports/top_sellers', $query );

    Documentação relacionada do WooCommerce: Recuperar relatório de mais vendidos

    Relatórios de totais de produtos


    Ao adicionar o parâmetro lang, você pode obter relatórios em um idioma especificado.
    Totais de produtos
    $query = [ 'lang' => 'fr' ];
    $woocommerce->get( 'reports/products/totals', $query );

    Documentação relacionada do WooCommerce: Recuperar totais de produtos

    Criar produtos


    Três parâmetros são suportados ao criar um produto:
    • lang – o respectivo valor de lang será definido para o produto. Se omitido, o idioma padrão do site será usado.
    • translation_of (opcional) – o produto será criado como uma tradução de um produto existente, tendo o ID fornecido pelo valor de translation_of. Se translation_of for omitido, o produto será criado como parte de um novo grupo de tradução (trid).
    • custom_prices – permite configurar preços personalizados em moedas secundárias.

    Exemplo:
    Criar produtos
    $data    = [
    	'name'              => 'English Test Post',
    	'type'              => 'simple',
    	'regular_price'     => '10.00',
    	'description'       => 'This is a Simple English Test Post',
    	'short_description' => 'This is a Simple English Test Post',
    	'categories'        => [ [ 'id' => 10 ], [ 'id' => 12 ] ],
    	'images'            => [
    		[ 'src' => 'https://example.com/image-1.png', 'position' => 0 ],
    		[ 'src' => 'https://example.com/image-2.png', 'position' => 1 ]
    	],
    	'lang'              => 'en',
    	'custom_prices'     => [
    		'EUR' => [ 'regular_price' => 1999, 'sale_price' => 1500 ],
    		'USD' => [ 'regular_price' => 2100, 'sale_price' => 2099 ]
    	]
    ];
    $product = $woocommerce->post( 'products', $data );

    Para adicionar um produto como tradução de outro post, você precisa passar o parâmetro translation_of. Se o post que foi criado com a chamada anterior tiver um ID 23, o código a seguir seria para adicionar uma tradução:

    Criando um produto como tradução de outro
    $data = [
    
    'name' => 'French Test Post',
    
    'type' => 'simple',
    
    'regular_price' => '10.00',
    
    'description' => 'This is a Simple French Test Post',
    
    'short_description' => 'This is a Simple French Test Post',
    
    'lang' => 'fr',
    
    'translation_of' => '23'
    
    ];
    
    $product = $woocommerce->post('products', $data);

    Note que, se as categorias já estiverem traduzidas, você não precisa especificá-las explicitamente ao adicionar a tradução se a opção Copiar taxonomia para as traduções estiver definida no WPML. Elas serão adicionadas automaticamente.

    Documentação relacionada do WooCommerce: Criar um produto

    Produtos variáveis

    Criar variações de produto com atributo local


    Três parâmetros são suportados ao criar uma variação de produto:
    • lang – o respectivo valor de lang será definido para a variação de produto. Se omitido, o idioma padrão do site será usado.
    • translation_of (opcional) – a variação de produto será criada como uma tradução de uma variação de produto existente, tendo o ID fornecido pelo valor de translation_of. Se translation_of for omitido, a variação de produto será criada como parte de um novo grupo de tradução (trid).
    • custom_prices – permite configurar preços personalizados em moedas secundárias.

    Exemplo:
    Criar variação
    $data = [ 'lang'          => 'en',
              'regular_price' => '10',
              'attributes'    => [ [ 'name' => $local_attribute_name, 'option' => 'red' ] ]
    ];
    $woocommerce->post( 'products/{$variable_product_id}/variations', $data );

    Para adicionar uma variação de produto como tradução de outro post, você precisa passar o parâmetro translation_of. Se o post que foi criado com a chamada anterior tiver um ID 25, o código a seguir seria para adicionar uma tradução:

    Traduzir variação
    $data = [
    	'name'           => 'Translation of Variable Product',
    	'type'           => 'variable',
    	'description'    => 'Translate of Product Description',
    	'lang'           => 'fr',
    	'translation_of' => 25,
    	'attributes'     => [
    		[
    			'name'      => $local_attribute_name,
    			'visible'   => true,
    			'variation' => true,
    			'options'   => [
    				'$translation_of_red'
    			]
    		]
    	]
    ];
    $woocommerce->post('products', $data);

    Documentação relacionada do WooCommerce: Criar uma variação de produto

    Criar variações de produto com atributo global


    Primeiro, você precisa criar e traduzir os termos globais. Em seguida, você pode criar o produto variável seguindo o exemplo abaixo:
    Criar produto variável
    $data = [
    	'name'           => 'Test Variable Product',
    	'type'           => 'variable',
    	'description'    => 'Test Variable Product for REST',
    	'lang'           => 'en',
    	'translation_of' => null,
    	'attributes'     => [
    		[
    			'id'   =>  $global_attribute_id,
    			'visible'   => true,
    			'variation' => true,
    			'options'   => [
    				'Red'
    			]
    		]
    	]
    ];
    $woocommerce->post('products', $data);

    Em seguida, precisamos criar as variações de produto. Se o produto original tiver um ID 25, o seguinte seria um exemplo do código:

    Criar variações de produto
    $data = [
    	'create' => [
    		[
    			'lang'           => 'en',
    			'translation_of' => null,
    			'regular_price'  => '10',
    			'attributes'     => [
    				[
    					'id'     => $global_attribute_id,
    					'option' => 'blue-en' //we need to add here the attribute term slug
    				]
    			]
    		]
    $woocommerce->post( 'products/25/variations/batch', $data );

    Agora os produtos variáveis foram criados em inglês. Para traduzi-los, siga o exemplo abaixo:

    Criar tradução de um produto variável
    $data = [
    	'name'           => 'FR Test Variable Product',
    	'type'           => 'variable',
    	'description'    => 'FR Test Variable Product for REST',
    	'lang'           => 'fr',
    	'translation_of' => 25,
    	'attributes'     => [
    		[
    			'id' => $global_attribute_id,
    			'visible'   => true,
    			'variation' => true,
    			'options'   => [
    				'red-fr' //slug of the attribute term translation
    			]
    		]
    	]
    ];
    $woocommerce->post('products', $data);

    Documentação relacionada do WooCommerce: Atualizar variações de produto em lote

    Criar um pedido


    Adicionar um parâmetro lang definirá o idioma especificado para o pedido especificado.

    Por favor, note que os produtos, se adicionados em um idioma diferente daquele fornecido como argumento aqui, não serão convertidos automaticamente, mas sim adicionados em seu próprio idioma.

    Exemplo:

    Criar um pedido
    $data = [
        'payment_details' => [
            'method_id' => 'bacs',
            'method_title' => 'Direct Bank Transfer',
            'paid' => true
        ],
        'billing_address' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'address_1' => '969 Market',
            'address_2' => '',
            'city' => 'San Francisco',
            'state' => 'CA',
            'postcode' => '94103',
            'country' => 'US',
            'email' => 'john.doe@example.com',
            'phone' => '(555) 555-5555'
        ],
        'shipping_address' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'address_1' => '969 Market',
            'address_2' => '',
            'city' => 'San Francisco',
            'state' => 'CA',
            'postcode' => '94103',
            'country' => 'US'
        ],
        'customer_id' => 2,
        'line_items' => [
            [
                'product_id' => 58,
                'quantity' => 2
            ],
        ],
        'shipping_lines' => [
            [
                'method_id' => 'flat_rate',
                'method_title' => 'Flat Rate',
                'total' => 10
            ]
        ],
        'lang' => 'el'
        'currency' => 'usd'
    ];
    $order = $woocommerce->post('orders', $data );

    Documentação relacionada do WooCommerce: Criar um pedido

    Criando termos de taxonomia (categoria de produto, tag, atributo, classe de entrega)

    Por favor, note que você pode usar a REST API para traduzir termos de Atributo (ex: Azul), mas não nomes de Atributo (ex: Cor). Para traduzir nomes de Atributo, vá para WPML → Tradução de taxonomia, escolha o atributo no menu suspenso e adicione as traduções na seção Traduções de rótulos e slug da taxonomia.

    Dois parâmetros são suportados ao criar um termo:
    • lang – o respectivo valor de lang será definido para o termo. Se omitido, o idioma padrão do site será usado.
    • translation_of (opcional) – o termo será criado como uma tradução de um termo existente, tendo o id fornecido pelo valor de translation_of. Se translation_of for omitido, o termo será criado como parte de um novo grupo de tradução (trid)

    Exemplo: Criar uma categoria no segundo idioma.
    Criar categoria
    $category = [ 'name' => 'Product Category ES', 'translation_of' => $original_category_id, 'lang' => 'es' ];
    $woocommerce->post( 'products/categories', $product_category );

    Documentação relacionada do WooCommerce: Criar uma categoria de produto

    Exemplo: Traduzir um termo de atributo global no idioma secundário

    Traduzir termo de atributo global
    $attribute_term = [ 'name' => 'Black ES', 'translation_of' => $original_attribute_term_id, 'lang' => 'es' ];
    $woocommerce->post( 'products/attributes/{$attribute_id}/terms', $attribute_term );

    Documentação relacionada do WooCommerce: Criar um termo de atributo

    Escrito por Amir · Última atualização em 1 de julho de 2026