2017-02-15 34 views
0

woocommerceのカートに追加ボタンのすぐ上に返品ポリシーのカスタムフィールドを追加しようとしています。エラーがどこかに文字列であり外echo divタグ内のPHP文字列

<?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 ... ?>のコンテキストにいます。文字列を作成するだけです。文字列が返されないechoが直接-edされるように例

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 '<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

@ Phil:ありがとう、 '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コンテンツは、単一引用符の内側にあり、決して他の単一引用符で囲んだ文字(のみの二重のもの)が含まれています。その後、concatthe_cfc_field()のHTMLテキストをreturns a stringという文字列に変換し、さらにhtmlで連結し直します。

関連する問題