2017-05-16 6 views
0

기본적으로 WooCommerce 체크 아웃의 템플릿 부분을 채우는 단축 코드를 만드는 데 관심이 있습니다. 예를 들어, 내 아이 테마의 functions.php에서 내 페이지에서템플릿 부분에서 WooCommerce 단축 코드를 만들 수 있습니까?

function shortcode_review_order() { 
    //get the template part from woocommerce/templates/checkout/review-order.php 
    wc_get_template_part('checkout/review-order'); 
} 
add_shortcode('custom_review_order', 'shortcode_review_order'); 

... 그리고 ...

<div>[custom_review_order]</div> 

나는이 시도 할 때, 아무것도 내 체크 아웃 페이지에 나타나지 않았다.

이것도 가능합니까? 코드에서 잘못된 몇 가지가

답변

0

... 첫

, 당신은 init 후크를 사용하여 단축 코드를 추가해야합니다.

add_action('init', 'add_shortcodes'); 
function add_shortcodes(){ 
    add_shortcode('custom_review_order', 'shortcode_review_order'); 
} 

템플릿의 일부가 .php입니다. 또한 아래와 같은 배열 매개 변수가 필요합니다. wc_get_template을 사용하면 더 정확한 결과를 얻을 수 있습니다.

function shortcode_review_order(){ 
    wc_get_template('checkout/review-order.php', array('checkout' => WC()->checkout())); 
} 

템플릿을 올바르게 사용하는 방법에 대해 자세히 알아 보려면 각 플러그인을 검색하십시오. 어떻게 사용되는지 확인할 수 있습니다. 그리고 당신은 당신이 그것을 어떻게 사용할 수 있는지에 대한 힌트를 얻을 수 있습니다.

+0

감사합니다. 이것은 효과가 있었다. 실제로 3 시간의 더 좋은 부분을 읽고이 방법과 다른 방법을 실험 해 보았습니다. 그러나 WooCommerce의 자체 문서 및 포럼에서 찾지 못한 예제 중 아무 것도 'add_action ('init ','add_shortcodes ') ; 그리고 당신이 추가 한 다른 것들. 아니면 코드 예제를 검색해 썩은 행운을 빕니다. : p –

+0

. 나는 플러그인에서'add_shortcodes'를 검색하고 그것이'init'에 있음을 보았습니다. ;) 나는 운이 좋았다고 생각한다. haha – Reigel

+0

너무 일찍 말했습니다. Checkout 페이지에서 텍스트 편집기에이 단축 코드를 포함하고 저장할 때 편집 모드에서만'심각한 오류 : 캐치 오류 :/wp-content/plugins /에있는 null에서 get_cart() 멤버 함수를 호출합니다. woocommerce/templates/checkout/review-order.php' 그리고 나서 스택 트레이스를 생성합니다. 나는 다른 "성분"을 놓치고 있어야하지만 나는이 막연한 오류 메시지로 무엇을 추적 할 수없는 것처럼 보입니다. : –