我试图在woocommerce的添加到购物车按钮上方添加退货政策自定义字段。我有以下功能:
<?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'); ?>
我更改了该字符串中的单引号以获得双引号。现在字符串验证错误消失了,但函数不起作用。
它们是导致错误的单引号吗?我该如何解决?
答案 0 :(得分: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>';
注意,我已使用https://github.com/aaronksaunders/AngularFire2-Ionic2-Facebook代替字符串,因此返回字符串而不是echo
- 直接编辑。
另一种方法是
echo '<div id="return-policy-wrapper">';
the_cfc_field('rp-info-meta', 'rp-info-custom-filed'); // this echoes the value
echo '</div>'
答案 1 :(得分: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>';
}
?>
答案 2 :(得分: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使用the_cfc_field()
函数returns a string的not in boto3 HTML文本,然后使用更多html连接回来。