在自定义帖子加载之前更新元字段值,然后显示具有更新元值的帖子



我想做什么

我目前正在研究当用户进入产品页面时更新产品价格的方法。我正在使用API来获取准确的价格。

<标题>

函数在后端正确地更新了元字段sellers,但是元字段的值不会在前端显示,即使在刷新之后。我必须在后端手动更新帖子,以便元字段sellers在刷新页面时显示在前面。

到目前为止我做了什么

我设法处理API请求,然后解析响应。我还设法触发API请求,并在必要时在产品页面的元字段中使用add_action钩子修改价格。我目前正在使用send_headers钩子,这可能不是一个去,但至少它有点工作:p

<标题>
add_action( 'send_headers', 'fetch_seller_price' );
function fetch_seller_price(){

//check if is front
if ( !is_admin() ) {
$post_id = get_the_ID();

//Check if is custom post type
if ('bons-plans' == get_post_type( $post_id )) {

//Get ASIN code from custom meta field
$asin_code = get_post_meta( $post_id, 'asin_code', true );
//check if product code is correct
if (strlen( $asin_code ) == 10) {

$sellers = get_post_meta($post_id, 'sellers', true);
foreach ($sellers as $item => $value) {

//Check if seller is Amazon
if ($value["seller"] == "Amazon") {

//get price from api function
$item_price = amazon_price_request( $asin_code );
//If new price != old price, update sellers array with new product price value 
if ($value["product-price"] != $item_price) {
$sellers[$item]["product-price"] = $item_price;

}
}

update_post_meta( $post_id, "sellers", $sellers );

}
}
}
}

}

注意:sellers元字段是一个嵌套数组,其中包含多个seller数组的形式:

["item-2"]=>
array(9) {
["seller"]=>
string(6) "Amazon"
["product-link"]=>
string(23) "https://amzn.to/3E90AFS"
["product-price"]=>
string(2) "42"
}

我试图var_dump()sellers数组加载页面后,在前面,并尝试与item_price变量。两者都返回正确的数字,但最终结果显示为空。

任何帮助都将是非常感激的!

我对PHP有点陌生,我很清楚我的代码有点垃圾,任何关于如何使它正确的想法也是可以接受的:p

问题是,我解析json响应的方式,变量是float格式,预期的格式是string:p

相关内容

  • 没有找到相关文章