2016-01-09 36 views
3

我正在努力獲取元數據以通過我的functions.php正確過濾。使用function.php的單品產品的Woocommerce元數據

我能得到這個,如果我在我的子主題沒有問題編輯meta.php工作: Works with meta.php (短篇小說 - 但因爲我用阿瓦達索主題 - 他們上更改子主題的位置升級時,我選擇了對的functions.php)

目前我正在試圖以這種方式過濾元:

add_filter ('woocommerce_product_meta_start','add_pet_info'); 
function add_pet_info($pet_info) { 
$string ="Test Text"; 
return $pet_info . $string; } 

而且我想得到這樣的結果: What I want 但我只是不能讓它工作。

任何想法我在這裏失蹤?

謝謝!

回答

2

woocommerce_product_meta_start不是過濾器。這是一個行動。所以如果你的值是return,沒有任何事情會發生。這應該打印出「測試文本」之前Woo打印任何元。

add_action('woocommerce_product_meta_start','add_pet_info'); 
function add_pet_info($pet_info) { 
    _e("Test Text", "your-textdomain"); 
} 

不確定的正是你正在嘗試添加代碼,但請記住,您可以將其添加到WooCommerce提供任何掛鉤(或你的主題提供任何掛鉤)。

例如把產品薈萃下面的測試文本,你可以修改上面下面:

add_action('woocommerce_product_meta_end','add_pet_info'); 
function add_pet_info($pet_info) { 
    _e("Test Text", "your-textdomain"); 
} 

任何你看到你正在尋找一個動作鉤子,你可以通過附加功能的do_actionadd_action()

+0

如果我的假設是正確的,OP需要它在meta下面..你的代碼會把文本放在meta上面..如果是這樣的話,下面有'woocommerce_product_meta_end'鉤子... – Reigel

+0

這就是我的想法,甚至可以用'woocommerce_product_meta_end'在本地測試這件作品。我將它放在'start'處,因爲它是原始查詢的一部分,但會進行編輯以解釋它可以被移動。 – helgatheviking

0

該區域由add_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40);

處理,所以你可以做這樣的事情......

function rei_add_text_below_meta() { 
    echo '<p>TEXT IN THIS AREA</p>'; 
} 
add_action('woocommerce_single_product_summary', 'rei_add_text_below_meta', 41); 

只是優先級編號玩......不到40將會使文本顯示的元以上區域..在這段代碼中的41將使文本出現在元區域下面。

+0

謝謝大家!這工作完美! 只是在這個背後添加一個小背景... 我選擇「Function.php」路由,因爲Avada主題使用woocommerce下的自定義文件結構以達到兼容性原因。 我原本已經安裝了所有東西並運行,然後我做了升級,meta.php和price.php即使在我的子主題中也消失了。 來找出我不得不添加一個「兼容性/版本」文件夾在我的孩子主題讓它再次工作。 我擔心未來的升級會繼續刪除任何定製。 – JoeDostie

+0

..以防萬一這可以幫助其他人,下面是我使用的一些代碼。 '\t如果(get_post_meta(get_the_ID(), '_pet_status_select',真)<> ''):> \t \t \t <跨度類= 「status_wrapper」> \t \t \t \t \t \t <跨度類= '狀態' itemprop = 「狀態」> \t \t \t \t \t \t
\t JoeDostie