簡體   English   中英

WooCommerce 在鈎子中編輯訂單項元

[英]WooCommerce edit order item meta in hook

我有一個 WooCommerce 網站與重力 Forms 和 WooCommerce 重力 Z6450242531912981C3683添加-CAEons88A3 產品一切都很好,具有產品定制功能的網站效果很好。

但是當客戶下訂單時,他有很多訂單項元數據。 一些元數據會改變產品的價格,而變化價格在元數據值中可見。

顯示我想做的結果

我試圖在這樣的過濾器鈎子上做一個正則表達式

add_filter('woocommerce_order_item_display_meta_value', function($value, $meta, $order) {
    if( !empty($value) ) {
        $re = '|\([0-9]{1,},[0-9]{2,} €\)|';
        $value = preg_replace( $re, '', $value );
    }

    return $value;
}, 10, 3);

當我在 $value 上創建一個 var_dump 時,這就是我得到的:

String (28) "Oui (+20€) (20,00 €)"

之后我嘗試這樣做:

add_filter('woocommerce_order_item_display_meta_value', function($value, $meta, $order) {
    if( !empty($value) ) {
        $re = '|\([0-9]{1,},[0-9]{2,} €\)|';

        $test = "Oui (+20€) (20,00 €)";

        $value = preg_replace( $re, '', $test );
    }

    return $value;
}, 10, 3);

這就是工作。 我不明白為什么當我使用 $value 的鈎子不起作用時以及當我直接使用相同的字符串時它起作用。

你有想法嗎?

先感謝您

在處理 Unicode 數據時,使用u (PCRE_UTF8)

將任何空格與\s匹配:

$re = '|\([0-9]+,[0-9]{2,}\s*€\)|u';

此外, {1,} = +

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM