我试图在woocommerce的add to cart按钮上方添加一个返回策略自定义字段。我有以下功能:
<?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'); ?>中使用单引号。
我将字符串中的单引号改为双引号。现在字符串验证错误消失了,但是函数无法工作。
它们是导致错误的单引号吗?我如何修复它?
发布于 2017-02-15 03:02:23
您已经处于<?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>'发布于 2017-02-15 03:05:41
脚本在传递给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>';
}
?>发布于 2017-02-15 03:19:28
不能在另一个<?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内容在单引号中,并且从不包含其他单引号字符(只有双引号)。然后,我将合并文本与the_cfc_field()函数返回一个字符串。连接起来,然后再与更多的html连接起来。
https://stackoverflow.com/questions/42239862
复制相似问题