2017-02-15 13 views
0

woocommerce의 장바구니에 추가 버튼 바로 위에 반품 정책 사용자 정의 필드를 추가하려고합니다. 나는 다음과 같은 기능을 가지고있다 :에코 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 ... ?> 상황입니다. 단순히 문자열을 작성하십시오. 예를

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 명령에 전달 인용 문자열이며, 따라서 스크립트로 간주되지 않습니다 때, 캐릭터 라인의 나머지와 함께 에코

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

Phil은 위대한 작품입니다. 감사합니다. –

1

될 것이다. 의도 한대로이 작동 할 수

:

<?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로 다시 연결됩니다.

관련 문제