wordpress - sirven - shortcode woocommerce categorias
Woocommerce, obtenga la identificación actual del producto (6)
Actualmente estoy trabajando en un tema de WooCommerce e intento agregar una barra lateral a la página de detalles del producto.
He podido agregar la barra lateral (específicamente, esta: http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/ )
Ahora, estoy tratando de descubrir cómo agregar una clase de "activo" al producto seleccionado actualmente y parece que no puedo entenderlo.
En otras palabras, ¿cómo hago algo en la línea de si la identificación del producto actual es igual a la identificación del producto en la barra lateral agregar class = "active" a la li?
He realizado numerosas búsquedas y no he podido encontrar nada útil, así que voy a pasar aquí.
Cualquier ayuda muy apreciada !!
Actualización 2017:
global $product;
$id = $product->get_id();
A Woocommerce no le gusta que accedas a esas variables directamente. Esto eliminará cualquier advertencia de woocommerce si su wp_debug es verdadero.
Desde WooCommerce
2.2
puede simplemente usar el Método
wc_get_product
.
Como argumento, puede pasar la
ID
o simplemente dejarla vacía si ya está en el ciclo.
wc_get_product()->get_id();
O con 2 líneas
$product = wc_get_product();
$id = $product->get_id();
Guarde la identificación del producto actual antes de ingresar a su ciclo:
$current_product = $product->id;
Luego, en su bucle para su barra lateral, use $ product-> id nuevamente para comparar:
<li><a <? if ($product->id == $current_product) { echo "class=''on''"; }?> href="<?=get_permalink();?>"><?=the_title();?></a></li>
Recupere la ID del elemento actual en el bucle de WordPress.
echo get_the_ID();
por lo tanto, también funciona para la identificación del producto. # probado # woo-commerce
Si la consulta no ha sido modificada por un complemento por alguna razón, debería poder obtener el "id" de una sola página de producto a través de
global $post;
$id = $post->ID
O
global $product;
$id = $product->id;
EDITAR: a partir de WooCommerce 3.0 esto debe ser
global $product;
$id = $product->get_id();
puede consultar woocommerce programáticamente, incluso puede agregar un producto a su carrito de compras. Estoy seguro de que puede descubrir cómo interactuar con el carrito de WooCommerce una vez que lea el código. Cómo interactuar con el carrito de WooCommerce programáticamente
====================================
<?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);
}
}
}
}