2017-02-15 100 views
0

我試圖在woocommerce中添加到購物車按鈕上方添加一個退貨政策自定義字段。我有以下功能:PHP字符串裏面的回聲div標籤

<?php 
add_action('woocommerce_single_product_summary', 'return_policy', 20); 
function return_policy() { 
    echo '<div id="return-policy-wrapper"> 
      <?php the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); ?> 
      </div>'; 
} 

但是代碼驗證器指出在字符串中某處存在錯誤。我懷疑這個錯誤是用單引號裏面的 <?php the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); ?>

我改變了雙引號的那個字符串中的單引號。現在字符串驗證錯誤消失了,但該函數不起作用。

它們是導致錯誤的單引號,我該如何解決它?

回答

1

您已經在<?php ... ?>上下文中。只需建立你的字符串。例如

printf('<div id="return-policy-wrapper">%s</div>', 
     get_cfc_field('rp-info-meta', 'rp-info-custom-filed')); 

echo '<div id="return-policy-wrapper">', 
    get_cfc_field('rp-info-meta', 'rp-info-custom-filed'), 
    '</div>'; 

請注意,我用get_cfc_field代替返回字符串,而不是echo -ed直接。


另一種方法是

echo '<div id="return-policy-wrapper">'; 
the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); // this echoes the value 
echo '</div>' 
+0

菲爾,很好的工作,非常感謝您的幫助.. –

1

的腳本傳遞給echo命令引用的字符串中,因此不被視爲一個劇本,但與字符串的其餘部分一起迴盪。

如預期這可能會實現:

<?php 
add_action('woocommerce_single_product_summary', 'return_policy', 20); 
function return_policy() { 
    $info = get_cfc_field('rp-info-meta', 'rp-info-custom-field'); 
    echo '<div id="return-policy-wrapper">'; 
    echo $info; 
    echo '</div>'; 
} 

?> 
+0

請注意,['the_cfc_field'](https://www.cozmoslabs.com/docs/wordpress-creation-kit-documentation/custom-fields -creator/wck-custom-fields-api /#the_cfc_field)不返回值。 – Phil

+0

@菲爾:謝謝,我已經更新使用'get_cfc_field'。 –

+0

非常感謝很多傢伙。 –

1

不能使用<?php內的另一個<?php [...] ?>塊。

你的代碼應該是類似的:

<?php 
add_action('woocommerce_single_product_summary', 'return_policy', 20); 
function return_policy() { 
    echo '<div id="return-policy-wrapper">' . the_cfc_field('rp-info-meta', 'rp-info-custom-filed') . '</div>'; 
} 

如果你仔細看,HTML內容爲單引號內,從來沒有包含其他單引號字符(僅適用於雙的)。然後,我concat的HTML文本the_cfc_field()函數returns a string,然後連接更多的HTML。