Je crée un thème personnalisé pour woocommerce et je dois pouvoir créer un mini affichage de produit. J'ai des problèmes pour trouver de la documentation sur l'API woocommerce. J'ai une liste délimitée par des virgules d'ID de produit que je dois parcourir et afficher un mini affichage de produit personnalisé pour chacun dans l'ordre.
$key_values = get_post_custom_values('rel_products_ids');
//get comma delimited list from product
$rel_product_ids = explode(",", trim($key_values, ","));
// create array of just the product ids
foreach ( $rel_product_ids as $pid ) {
//sequentially get each id and do something with it
$loop = new WP_Query( array( 'post__in' => $pid ) );
// also tried ...
//$loop = new WP_Query( array( 'ID' => $pid ) );
while ( $loop->have_posts() ) : $loop->the_post(); $_product = &new WC_Product( $loop->post->ID );
//do stuff here I have stripped the html in favor of getting to the meat of the issue
woocommerce_show_product_sale_flash( $post, $_product );
if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_single');
get_permalink( $loop->post->ID );
the_title();
$_product->get_price_html();
endwhile;
}
Toute aide serait appréciée.
Je vous remercie,
Tim
Un autre moyen simple consiste à utiliser la classe WC_Product_Factory puis à appeler la fonction get_product (ID)
http://docs.woothemes.com/wc-apidocs/source-class-WC_Product_Factory.html#16-6
échantillon:
// assuming the list of product IDs is are stored in an array called IDs;
$_pf = new WC_Product_Factory();
foreach ($IDs as $id) {
$_product = $_pf->get_product($id);
// from here $_product will be a fully functional WC Product object,
// you can use all functions as listed in their api
}
Vous pouvez ensuite utiliser tous les appels de fonction répertoriés dans leur api: http://docs.woothemes.com/wc-apidocs/class-WC_Product.html
D'accord, je mérite d'être étranglé. certainement un RTM mais pas pour WooCommerce, pour Wordpress. Solution trouvée en raison d'un cola JOLT (tout grêle JOLT cola).
TÂCHE: champ nommé "related_product_ids" ajouté à un type de publication personnalisé. Ainsi, lorsque ce message est affiché, des mini-affichages de produits peuvent être affichés avec.
PROBLÈME: rencontrait un problème lors du renvoi des identifiants multiples via WP_Query.
SOLUTION:
$related_id_list = get_post_custom_values('related_product_ids');
// Get comma delimited list from current post
$related_product_ids = explode(",", trim($related_id_list[0],','));
// Return an array of the IDs ensure no empty array elements from extra commas
$related_product_post_ids = array( 'post_type' => 'product',
'post__in' => $related_product_ids,
'meta_query'=> array(
array( 'key' => '_visibility',
'value' => array('catalog', 'visible'),'compare' => 'IN'
)
)
);
// Query to get all product posts matching given IDs provided it is a published post
$loop = new WP_Query( $related_posts );
// Execute query
while ( $loop->have_posts() ) : $loop->the_post(); $_product = get_product( $loop->post->ID );
// Do stuff here to display your products
endwhile;
Merci à tous ceux qui ont consacré du temps à cela.
Tim
global $woocommerce;
var_dump($woocommerce->customer->get_country());
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = new WC_product($cart_item['product_id']);
var_dump($product);
}