すべてが次の$product->get_price_html();
ようなものを生成します:
<del><span class="amount">£8.00</span>–<span class="amount">£9.00</span></del>
<ins><span class="amount">£7.00</span>–<span class="amount">£8.00</span></ins>
このデータを操作するには、この文字列から抽出する必要があります
WP フィルターを使用する場合 -get_price_html()
どこでも出力を変更することになり、get_price_html()
出力を 1 か所だけ変更する必要がある場合は、次のようにする必要があります。
global $product;
$price_html = $product->get_price_html();
$price_html_array = price_array($price_html);
function price_array($price){
$del = array('<span class="amount">', '</span>','<del>','<ins>');
$price = str_replace($del, '', $price);
$price = str_replace('</del>', '|', $price);
$price = str_replace('</ins>', '|', $price);
$price_arr = explode('|', $price);
$price_arr = array_filter($price_arr);
return $price_arr;
}
これで、配列に同じデータができました
Array ( [0] => £8.00–£9.00 [1] => £7.00–£8.00 )
そして、あなたはそれであなたが望むすべてを行うことができます
グローバルフィルターを適用するには、追加する必要があります
add_filter( 'woocommerce_get_price_html', 'price_array', 100, 2 );