2017-02-15 101 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。