Acesso WC_Product dados protegidos a partir de wc_get_product () 3 em WooCommerce

votos
2

Eu tenho esta resposta para referência: WooCommerce Obter os valores do produto por ID ... É sobre a função wc_get_product()que retorna dados protegidos.

Onde estão os métodos getter definido para essa função?
Como posso acessar os dados protegidos dentro wc_get_product()?

Esta discussão Resposta está dizendo que WC_Product_Factoryclasse está sendo usado. Esta classe pode ser estendido para acessar os dados protegidos dentro wc_get_product()?

O wc_get_product()parece ser uma função, mas como ele retornar um objeto?

Publicado 20/10/2018 em 13:58
fonte usuário
Em outras línguas...                            


1 respostas

votos
4

A wc_get_product( $product_id)função dá o WC_Productobjecto exemplo (a partir de um produto ID) onde os dados podem ser acedidos com todos disponíveis WC_Productmétodos e WC_Productsubclasses, dependendo do tipo de produto:

// Get the instance of the WC_Product Object
$product = wc_get_product( $product_id);

// Using `WC_Product` methods examples to get specific related data values:

$product_type  = $product->get_type(); // product Type
$product_id    = $product->get_id(); // product ID
$product_name  = $product->get_name(); // product name
$product_sku   = $product->get_sku(); // product SKU
$product_price = $product->get_price(); // product price

// And so on…

// The raw display of the object protected data (Just for testing)
echo '<pre>'; print_r( $product ); echo '</pre>';

Você pode desproteger os dados usando o WC_Datamétodoget_data() que lhe dará um conjunto acessível dos dados:

// Get the instance of the WC_Product Object
$product = wc_get_product( $product_id);

// Get the accessible array of product properties:
$data = $product->get_data();

// get specific related data values:

$product_id    = $data['id']; // product ID
$product_name  = $data['name']; // product name
$product_sku   = $data['sku']; // product SKU
$product_price = $data['price']; // product price

// And so on…

// The raw display of the unprotected data array (Just for testing)
echo '<pre>'; print_r( $data ); echo '</pre>';

Para específica de dados meta personalizada você pode usar o WC_Datamétodoget_meta() . Então, se a chave meta personalizado é, por exemplo, _custom_heightvocê usará:

$custom_product_height = $product->get_meta( '_custom_height' );

WooCommerce Oficial documentação da API:

Respondeu 20/10/2018 em 14:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more