it-swarm.com.de

Woocommerce, aktuelle Produkt-ID

Ich arbeite gerade an einem WooCommerce-Design und versuche, der Produktdetailseite eine Seitenleiste hinzuzufügen.

Ich konnte die Seitenleiste hinzufügen (insbesondere: http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/ )

Nun versuche ich herauszufinden, wie man dem gerade ausgewählten Produkt eine Klasse von "aktiv" hinzufügt.

Mit anderen Worten, wie gehe ich vor, wenn die aktuelle Produkt-ID der Produkt-ID in der Seitenleiste entspricht und add class = "active" zum li?

Ich habe zahlreiche Suchanfragen gemacht und konnte nichts Nützliches einfallen lassen, also drehe ich mich hier um.

Jede Hilfe sehr geschätzt !!

24
shparkison

2017 Update:

global $product;
$id = $product->get_id();

Woocommerce möchte nicht, dass Sie direkt auf diese Variablen zugreifen. Dadurch werden Warnungen von woocommerce entfernt, wenn Ihr wp_debug wahr ist.

69
Samyer

Wenn die Abfrage aus irgendeinem Grund nicht durch ein Plugin geändert wurde, sollten Sie die "ID" einer einzelnen Produktseite über erhalten können

global $post;
$id = $post->ID

OR

global $product;
$id = $product->id;
17
helgatheviking

Seit WooCommerce 2.2 Können Sie einfach die Methode wc_get_product Verwenden. Als Argument können Sie ID übergeben oder einfach leer lassen, wenn Sie bereits in der Schleife sind.

wc_get_product()->get_id();

ODER mit 2 Zeilen

$product = wc_get_product();
$id = $product->get_id();
7
Orlandster

Rufen Sie die ID des aktuellen Elements in der WordPress-Schleife ab.

echo get_the_ID(); 

funktioniert also auch für die Produkt-ID. #getestet # woo-commerce 

2
R T

Speichern Sie die aktuelle Produkt-ID, bevor Sie Ihre Schleife eingeben:

$current_product = $product->id;

Verwenden Sie dann in Ihrer Schleife für Ihre Seitenleiste erneut $ product-> id, um zu vergleichen: 

 <li><a <? if ($product->id == $current_product) { echo "class='on'"; }?> href="<?=get_permalink();?>"><?=the_title();?></a></li>
1
Etienne Dupuis

sie können woocommerce programmgesteuert abfragen und sogar ein Produkt in Ihren Warenkorb legen. Ich bin sicher, dass Sie herausfinden können, wie Sie mit woocommerce cart interagieren, wenn Sie den Code gelesen haben. wie man programmatisch mit woocommerce cart interagiert

===================================

<?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
Hugo R