我目前正在研究WooCommerce主题并尝试在产品详细信息页面中添加侧边栏。
我已经能够添加侧栏(具体来说,这个:http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/)
现在,我正在试图弄清楚如何在当前选择的产品中添加一类“有效”,似乎无法弄明白?
换句话说,如果当前产品ID等于侧边栏中的产品ID,我该怎么做呢?添加class =“active”到li?
我进行了大量搜索,但未能提出任何有用的信息,所以我要转到这里。
任何帮助都非常感谢!!
答案 0 :(得分:79)
2017年更新:
global $product;
$id = $product->get_id();
Woocommerce并不像您直接访问这些变量。如果你的wp_debug是真的,这将摆脱woocommerce的任何警告。
答案 1 :(得分:19)
如果查询由于某种原因未被插件修改,您应该能够获得单个产品页面" id"通过
global $post;
$id = $post->ID
OR
global $product;
$id = $product->id;
编辑:从WooCommerce 3.0开始,这需要
global $product;
$id = $product->get_id();
答案 2 :(得分:7)
自WooCommerce 2.2
起,您就可以简单地使用wc_get_product
方法。作为参数,您可以传递ID
,或者如果您已经在循环中,则可以将其保留为空。
wc_get_product()->get_id();
或2行
$product = wc_get_product();
$id = $product->get_id();
答案 3 :(得分:3)
检索WordPress循环中当前项目的ID。
echo get_the_ID();
因此也适用于产品ID。 #tested#woo-commerce
答案 4 :(得分:1)
在进入循环之前保存当前产品ID:
$current_product = $product->id;
然后在您的侧边栏循环中,再次使用$ product-> id进行比较:
<li><a <? if ($product->id == $current_product) { echo "class='on'"; }?> href="<?=get_permalink();?>"><?=the_title();?></a></li>
答案 5 :(得分:0)
你可以以编程方式查询woocommerce 您甚至可以将产品添加到购物车中。 一旦你阅读了代码,我相信你可以弄清楚如何与woocommerce购物车互动。 how to interact with woocommerce cart programatically
====================================
<?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);
}
}
}
}