Woocommerce, obtenir l'id produit courant
je travaille actuellement sur un thème WooCommerce et tente d'ajouter une barre latérale à la page de détail du produit.
j'ai pu ajouter la barre latérale (plus précisément celle - ci:http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/)
Maintenant, je suis à essayer de comprendre comment ajouter une classe "active" du produit sélectionné et ne semblent pas le comprendre?
en d'autres termes, comment puis-je faire quelque chose le long les lignes de si l'id du produit courant est égal à l'id du produit dans la barre latérale ajouter la classe = "active" au li?
j'ai fait de nombreuses recherches et je n'ai pas pu trouver quoi que ce soit d'utile, donc je tourne ici.
Toute aide grandement appréciée!!
6 réponses
mise à jour 2017:
global $product;
$id = $product->get_id();
Woocommerce n'aime pas que vous accédiez directement à ces variables. Cela éliminera tous les avertissements de woocommerce si votre wp_debug est vrai.
si la requête n'a pas été modifiée par un plugin pour une raison quelconque, vous devriez être en mesure d'obtenir un "id" d'une page produit unique via
global $post;
$id = $post->ID
OU
global $product;
$id = $product->id;
récupérez L'ID de l'élément courant dans la boucle WordPress.
echo get_the_ID();
par conséquent fonctionne pour le Produit id trop. #testés #woo-commerce
enregistrez l'identifiant du produit courant avant d'entrer dans votre boucle:
$current_product = $product->id;
id de nouveau pour comparer:
<li><a <? if ($product->id == $current_product) { echo "class='on'"; }?> href="<?=get_permalink();?>"><?=the_title();?></a></li>
votre pouvez interroger thème par programmation vous pouvez même ajouter un produit à votre panier d'achat. Je suis sûr que vous pouvez trouver comment interagir avec WooCommerce cart une fois que vous avez lu le code. comment interagir avec le thème panier en programmant
====================================
<?php
add_action('wp_loaded', 'add_product_to_cart');
function add_product_to_cart()
{
global $wpdb;
if (!is_admin()) {
$product_id = wc_get_product_id_by_sku('L3-670115');
$found = false;
if (is_user_logged_in()) {
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->get_id() == $product_id)
WC()->cart->remove_cart_item($cart_item_key);
}
}
} else {
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->id == $product_id)
$found = true;
}
// if product not found, add it
if (!$found)
WC()->cart->add_to_cart($product_id);
} else {
// if no products in cart, add it
WC()->cart->add_to_cart($product_id);
}
}
}
}
Depuis Le Thème 2.2
Vous pouvez simplement utiliser le wc_get_product
Méthode. Comme argument vous pouvez passer le ID
ou tout simplement le laisser vide si vous êtes déjà dans la boucle.
wc_get_product()->get_id();
ou avec 2 lignes
$product = wc_get_product();
$id = $product->get_id();