在产品页面(产品1)上,我试图浏览有关不同相关产品(产品2)的信息。
创建一种“您可能也喜欢”的产品列表。
我正在尝试最简单的WP\\U查询,但无法找出如何从列表中的一个产品(产品2)中提取所有产品数据,以便我可以提前看到可以为我当前浏览的产品(产品1)带来什么。
我需要这样的东西:
<?php
$additional_forms_args = array(
\'post_type\' => \'product\',
\'posts_per_page\' => 1,
\'p\' => $other_form_product_id
);
$additional_form_query = new WP_Query($additional_forms_args);
if ( $additional_form_query->have_posts() ) :
while ( $additional_form_query->have_posts() ) : $additional_form_query->the_post();
global $product;
$attributes = $product->get_attributes();
var_dump( $attributes );
endwhile;
wp_reset_postdata();
endif;
我希望插入product\\u id的产品数据有一个var\\u转储。
我希望看到产品的产品数据数组,其ID为我放入args的内容,而得到的是一个空数组:
数组(0){}
Please can someone help me to gather all product data associated with a product separate to the one I am currently browsing and dump its data for inspection?
EDIT (优化问题):
我还有一段代码,在我的产品上创建了一个变量:
woocommerce_wp_checkbox(
array(
\'id\' => \'greener_production\',
\'wrapper_class\' => \'show_if_simple\',
\'label\' => __(\'Greener Production\', \'woocommerce\'),
\'description\' => __(\'Tick if this product is the result of Greener Production\', \'woocommerce\'),
)
);
在同一个代码段中,我们是否可以查询此代码以查看是否勾选了“是:否”?
谢谢,杰森。
最合适的回答,由SO网友:disinfor 整理而成
今天早上我确实做了同样的事情。这里有一个可以使用的函数。可以将函数添加到函数中。然后在模板上调用函数:
/**
* @param array $product_ids product_id the product id for the product you want to retrieve.
*
* @return string the HTML output
*/
function wpse361339_relevant_products( $product_ids = [] ) {
global $post;
// Bail early if there is not product ids.
if ( is_empty( $product_ids ) ) :
return;
endif;
// Args here
$args = [
\'post_type\' => \'product\',
\'posts_per_page\' => 1,
\'post__in\' => $product_ids,
// MORE ARGS HERE IF NECESSARY
];
$related_products = get_posts( $args );
$product_output = \'\';
foreach ( $related_products as $related_product ) {
// Get the product object so we have access to the attributes.
$product = wc_get_product( $related_product->ID );
// $product_output .= BUILD YOUR MARKUP HERE
echo \'<pre>\' . print_r( $product, TRUE ) . \'</pre>\';
}
return $product_output;
}
我这样做是为了让您可以将想要的任何产品ID作为数组传递给函数。然后对属性执行所需的操作。
要在模板上使用:wpse361339_relevant_products( [ \'product_id_here\' ] );
EDIT获取WP_Query()
, 您只需在while
回路:
$product_data = wc_get_product( get_the_ID() );
var_dump( $product_data );
在上下文中:
<?php
$additional_forms_args = array(
\'post_type\' => \'product\',
\'posts_per_page\' => 1,
\'p\' => $other_form_product_id
);
$additional_form_query = new WP_Query($additional_forms_args);
if ( $additional_form_query->have_posts() ) :
while ( $additional_form_query->have_posts() ) : $additional_form_query->the_post();
$product_data = wc_get_product( get_the_ID() );
var_dump( $product_data );
endwhile;
wp_reset_postdata();
endif;
要获取特定的产品数据,可以使用以下方法:
https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html喜欢$product_data->get_title()
将为您获取标题。
EDIT 2复选框数据保存在产品元中,因此您可以获得它:$product_data->get_meta();