我希望在变体下拉列表中显示每个woocommerce产品变体的价格和库存状态,如下所示:价格-变体名称-库存状态。
下面的代码给我的价格和变化名称在下拉列表中,但我不确定添加每个变化所需的额外代码当前库存状态?
// Add Variation Price to Drop Down
add_filter( 'woocommerce_variation_option_name',
'display_price_in_variation_option_name' );
function display_price_in_variation_option_name( $term ) {
global $wpdb, $product;
if ( empty( $term ) ) return $term;
if ( empty( $product->id ) ) return $term;
$result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$term'" );
$term_slug = ( !empty( $result ) ) ? $result[0] : $term;
$query = "SELECT postmeta.post_id AS product_id
FROM {$wpdb->prefix}postmeta AS postmeta
LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id )
WHERE postmeta.meta_key LIKE 'attribute_%'
AND postmeta.meta_value = '$term_slug'
AND products.post_parent = $product->id";
$variation_id = $wpdb->get_col( $query );
$parent = wp_get_post_parent_id( $variation_id[0] );
if ( $parent > 0 ) {
$_product = new WC_Product_Variation( $variation_id[0] );
return wp_kses( woocommerce_price( $_product->get_price() ), array() ). ' - ' . $term . '';
}
return $term;
}
提前感谢你所有的帮助。
如果有人想在变化下拉列表中添加带有自定义措辞的股票状态,以下是我根据Kashalo提供的答案使用的代码。
add_filter( 'woocommerce_variation_option_name','display_price_in_variation_option_name');
function display_price_in_variation_option_name( $term ) {
global $product;
if ( empty( $term ) ) {
return $term;
}
if ( empty( $product->id ) ) {
return $term;
}
$variation_id = $product->get_children();
foreach ( $variation_id as $id ) {
$_product = new WC_Product_Variation( $id );
$variation_data = $_product->get_variation_attributes();
$stock_status = $_product->get_stock_status();
$stock_status = str_replace( array('instock','outofstock','onbackorder'), array('In Stock','Out of Stock','Please allow a few extra days for delivery'), $stock_status );
foreach ( $variation_data as $key => $data ) {
if ( $data == $term ) {
$html = wp_kses( woocommerce_price( $_product->get_price() ), array() );
$html .= ' - ' . $term;
$html .= ( $stock_status ) ? ' - ' . $stock_status : '';
return $html;
}
}
}
return $term;
}
我已经通过删除自定义sql查询修改了您的函数,并使用WooCommerce内置函数来实现目标。
add_filter( 'woocommerce_variation_option_name','display_price_in_variation_option_name');
function display_price_in_variation_option_name( $term ) {
global $product;
if ( empty( $term ) ) {
return $term;
}
if ( empty( $product->id ) ) {
return $term;
}
$variation_id = $product->get_children();
foreach ( $variation_id as $id ) {
$_product = new WC_Product_Variation( $id );
$variation_data = $_product->get_variation_attributes();
foreach ( $variation_data as $key => $data ) {
if ( $data == $term ) {
$html = wp_kses( woocommerce_price( $_product->get_price() ), array() );
$html .= ' - ' . $term;
$html .= ( $_product->get_stock_quantity() ) ? ' - ' . $_product->get_stock_quantity() : '';
return $html;
}
}
}
return $term;
}
注意:如果每个产品都有一个属性而不是一个属性的组合,则此功能将正常工作。
输出:
我正在使用Woocommerce和产品变体,我的所有变体都定义了默认变体。我想知道,我如何才能找到默认的变化和显示它的价格。 这是到目前为止我得到的代码,但它显示了最便宜的变体价格,我正在寻找我的默认变体产品价格。 } 我发现这里的代码示例显示默认的产品价格
我想在Woocommerce产品页面上的变种下拉列表中显示每个产品变种的库存状态(例如,库存中/脱销)。我已经将相关函数复制到主题的functions.php文件中,并且可以编辑内容,但是不确定如何为每个变体提取所需的库存状态。 我可以取出整个产品的库存水平,但现在是每个变体的库存水平。 null
问题内容: 我想在Woocommerce产品页面上的变体下拉列表中显示每个产品变体的库存状态(例如,库存/缺货)。我已经将相关功能复制到主题的functions.php文件中,并且可以编辑内容,但是不确定如何提取每种变体的所需库存状态。 我可以提取整个产品的库存水平,但是现在可以提取每个版本的库存水平。 任何帮助将不胜感激。 问题答案: 好的,首先,您需要获得以下产品变体: 在期权循环中,您需要遍
我在我的WooCommerce 2.6.4商店上使用可变产品,我为同一产品的两种不同变体添加了不同的价格。当选择两个变体中的一个时,根本不显示任何价格。下面的div只是空的: 我希望预选的变异价格显示为默认,而非预选的变异价格应在选择时动态替换。几乎像这个演示,除了从一个预选的项目和价格应该显示为默认。
我已经创建了这段代码,可以在网站上的任何页面上显示价格,这是由woocommerce控制的。 我想做的是修改代码,这样如果客户选择了一个变化的产品。然后价格变化以显示变化价格。例如,现在如果一个人选择了一种产品,在这种情况下是一个酊剂瓶,价格变化与瓶子的大小有关。在产品页面上,他们看到以下内容:- 产品(酊剂)30美元-50美元 从下拉菜单中,他们可以选择10mg瓶($30)、15mg瓶($40)