我正在创建一个新的短代码,我想在类似于评论的页面中显示有关产品的一些详细信息。
如果我做对了-我只能用wc_get_product
如果当前页面正在使用WooCommerce插件。由于这是一个帖子页面,它不包含WooCommerce插件,因此我不能使用wc_get_product
.
(如果我错了,请纠正我-我是来学习的:D)
有没有办法通过页面上的id获取产品详细信息?
谢谢
EDIT:
我将此代码用作具有以下属性的短代码:
<?php
// Add custom Theme Functions here
//
function gear_guide_product_view( $atts ) {
$a = shortcode_atts( array(
\'id\' => \'0\'
), $atts );
echo var_dump(wc_get_product($a["id"]));
wp_register_script( \'load_product_info\' , \'/wp-content/themes/theme-child/js/test.js\' , array( \'jquery\' ) );
wp_enqueue_script( \'load_product_info\' );
wp_localize_script( \'load_product_info\' , \'ids\' , $atts);
}
add_action( \'woocommerce_loaded\', \'my_function_with_wc_functions\' );
add_shortcode( \'fsg\' , \'gear_guide_product_view\' );
这将调用js脚本:
function load_product_info() {
jQuery.ajax({
type: \'POST\',
url: \'/wp-content/themes/theme-child/js/controllers/get_product_info.php\',
data: ids,
dataType: \'json\',
success: function (data) {
console.log(data);
},
error: function () {
console.log("Failed to get data!");
}
});
}
load_product_info();
ajax函数调用以下控制器:
<?php
if (isset($_POST["id"])) {
$product_id = $_POST["id"];
$product = wc_get_product($product_id);
echo json_encode($product);
} else {
echo "Nothing to return!";
}
?>