我在WooCommerce中为产品构建自定义目标网页,我希望在其他内容中获取产品价格,以便在目标网页上显示它们。
每个目标网页都有一些自定义字段,允许WP管理员添加内容,登录页面以及产品ID,然后用于生成产品价格,结帐网址等。
我无法让-0800
使用我的自定义字段或内置的变量。它仅在我使用直接ID时有效。我认为我不了解变量在PHP中是如何工作的。这是我的代码。
wc_get_product();
更新
我使用 <?php
//Gets the course ID from the custom field entered by user
$courseID = the_field('course_id');
// This line is where the problem is...
$_product = wc_get_product('$courseID');
// If I replace the line above with this line
// $_product = wc_get_product('7217');
// everything works great, but that does not let
// each landing page function based on the custom fields where the user determines
// the product ID they are selling on that landing page.
// Get's the price of the product
$course_price = $_product->get_regular_price();
// Output the Course price
?> <span class="coursePrice">$<?php echo $course_price;?></span>
或 wc_get_product( $courseID );
收到以下错误:
get_product( $courseID );
答案 0 :(得分:5)
与您最近的评论相关的更新。 探索的两种方式:
1)而不是你应该尝试使用获取产品对象(避免错误):
$courseID = the_field('course_id');
// Optionally try this (uncommenting)
// $courseID = (int)$courseID;
// Get an instance of the product object
$_product = new WC_Product($courseID);
2)或者,如果这不起作用,您应该尝试使用get_post_meta()
函数以这种方式获取产品价格(或任何产品元数据):
<?php
//Gets the course ID from the custom field entered by user
$courseID = the_field('course_id');
// Get the product price (from this course ID):
$course_price = get_post_meta($courseID, '_regular_price', true);
// Output the Course price
?> <span class="coursePrice">$<?php echo $course_price;?></span>
这次您应该使用一个或其他解决方案显示价格。
更新:可能还需要将$ courseID转换为整数变量。
因为您需要在wc_get_product()
内使用变量 $courseID
(没有2 '
)这样的方式:< / p>
<?php
//Gets the course ID from the custom field entered by user
$courseID = the_field('course_id');
// Optionally try this (uncommenting)
// $courseID = (int)$courseID;
// Here
$_product = wc_get_product( $courseID );
$course_price = $_product->get_regular_price();
// Output the Course price
?> <span class="coursePrice">$<?php echo $course_price;?></span>
现在应该可以了。
答案 1 :(得分:1)
你可以尝试一下:
$courseID = the_field('course_id');
$product = get_product( $courseID );
答案 2 :(得分:1)
在完成@LoicTheAztec在他的回复中提供的可能解决方案路线后,我找到了答案。这些都没有奏效,所以我认为还有其他的东西了。
我使用高级自定义字段在后端添加自定义字段,我使用ACF的the_field()
来创建我的变量。这是该函数的错误使用,因为它旨在显示字段,(它基本上使用php的回声)。要使用这些自定义字段,您需要使用ACf的get_field()
use it to store a value, echo a value and interact with a value.
一旦我切换到将$ courseID设置为此...
$courseID = get_field('course_id');
一切顺利。我的代码工作正常,所有@ LoicTheAztec的代码方法也有效。
答案 3 :(得分:0)