我正在为WooCommerce中的产品构建自定义目标网页,我希望在其他内容中获取产品价格,以便在目标网页上显示它们.
每个登录页面都有一些自定义字段,允许WP管理员添加内容,登录页面以及产品ID,然后将用于生成产品价格,结帐URL等.
我无法获得wc_get_product();使用我的自定义字段或内置的变量.它仅在我使用直接ID时有效.我认为我不了解变量如何在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
?> $<?php echo $course_price;?>
Update
我使用wc_get_product($courseID)得到以下错误;或get_product($courseID);:
Fatal error: Call to a member function get_regular_price() on a non-object in ...
最佳答案:
Update related to your recent comment. The 2 ways to explore:
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()函数以这种方式获得产品价格(或任何产品元数据):
//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
?> $<?php echo $course_price;?>
这次你应该用一个或其他解决方案显示价格.
Update: May be Also you need to convert $courseID to an integer variable.
因为你需要在wc_get_product()(没有2′)函数中使用你的变量$courseID:
//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
?> $<?php echo $course_price;?>
这应该现在有效.
标签:wordpress,php,woocommerce,product,advanced-custom-fields
来源: https://codeday.me/bug/20190516/1114398.html