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!!

20
demandé sur LoicTheAztec 2014-12-09 21:14:19

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.

57
répondu Samyer 2017-08-09 10:09:50

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;
17
répondu helgatheviking 2017-04-22 17:55:59

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

2
répondu R T 2015-07-15 09:11:01

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>
1
répondu Etienne Dupuis 2015-07-06 14:17:32

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);
            }
        }
    }
}
0
répondu Hugo R 2018-05-09 14:26:32

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();
0
répondu Orlandster 2018-09-26 09:36:21