[英]Replace variable products price range with “From:” + lowest price in WooCommerce
[英]Replace price shortcode with actual price from array
我有這樣的價格簡碼:
[price ELEPHANT]
[price MONKEY_345]
[price TIGER.3TAIL]
大寫字母(帶有擴展名,如果有的話)是產品SKU。
我已經對SKU和PRICE運行了數據庫查詢,所以現在我想將文本中的簡碼替換為商品的實際價格。
[price ELEPHANT]
46.97
[price ELEPHANT]
變為46.97
1.)我一直在使用preg_replace,但無法使其與“。”一起使用。 或SKU中的“ _”:
$text = '<p>We have the price: [price CANOPY3.75B]. This is some more text.</p>';
$pattern = '/\[(\w+) (\w+)\]/';
$replacement = '$2';
echo preg_replace($pattern, $replacement, $text);
2.)確定短碼SKU值后,如何使用它在數組中搜索相關價格?
(希望我對代碼塊進行了確定-這是我的第一篇文章。)
假設您有以下帶有“名稱-價格”對的數組:
$prices = array('ELEPHANT' => 46.97, 'CANOPY3.75B' => 20.35, 'TIGER.3TAIL' => 30 ... etc.);
然后,您可以使用以下代碼:
$prices = array('ELEPHANT' => 46.97, 'CANOPY3.75B' => 20.35, 'TIGER.3TAIL' => 30,);
$text = '<p>We have the price: [price CANOPY3.75B]. This is some more text.</p>';
$pattern = '/\[price (.*?)\]/';
echo preg_replace_callback($pattern,
function($match)
{
global $prices;
return isset($prices[$match[1]]) ? $prices[$match[1]] : $match[1];
},
$text);
//output: We have the price: 20.35. This is some more text.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.