【问题标题】:How can I wrap this woocommerce template php in a function?如何将此 woocommerce 模板 php 包装在一个函数中?
【发布时间】:2022-06-11 04:23:44
【问题描述】:

我正在尝试将这个模板化的 html 包装在一个函数中,以便我可以将它挂接到“woocommerce_after_shop_loop_item_title”中。我让它作为 meta.php 模板覆盖的一部分工作得很好,我似乎无法将它包装在一个函数中。

这是我正在使用的代码 ->

<?php if ( ! in_category('accessories') && ( strpos(get_post_meta( $product->get_id(), 'show min max thc cbd', true), 'true') !== false ) ) : ?>

        <span class="thc_content_wrapper"><?php esc_html_e( 'THC:', 'woocommerce' ); ?> <span class="thc"><?php echo ( get_post_meta( $product->get_id(), 'min thc', true) ); ?><?php esc_html_e( '-', 'woocommerce' ); ?><?php echo ( get_post_meta( $product->get_id(), 'max thc', true) ); ?><?php echo ( get_post_meta( $product->get_id(), 'thc/cbd unit', true) ); ?></span></span>
        <span class="cbd_content_wrapper"><?php esc_html_e( 'CBD:', 'woocommerce' ); ?> <span class="cbd"><?php echo ( get_post_meta( $product->get_id(), 'min cbd', true) ); ?><?php esc_html_e( '-', 'woocommerce' ); ?><?php echo ( get_post_meta( $product->get_id(), 'max cbd', true) ); ?><?php echo ( get_post_meta( $product->get_id(), 'thc/cbd unit', true) ); ?></span></span>

    <?php endif; ?>

    <?php if ( ! in_category('accessories') && ( strpos(get_post_meta( $product->get_id(), 'show min max thc cbd', true), 'false') !== false ) ) : ?>

        <span class="thc_content_wrapper"><?php esc_html_e( 'THC:', 'woocommerce' ); ?> <span class="thc"><?php echo ( get_post_meta( $product->get_id(), 'thc', true) ); ?><?php echo ( get_post_meta( $product->get_id(), 'thc/cbd unit', true) ); ?></span></span>
        <span class="thc_content_wrapper"><?php esc_html_e( 'CBD:', 'woocommerce' ); ?> <span class="cbd"><?php echo ( get_post_meta( $product->get_id(), 'cbd', true) ); ?><?php echo ( get_post_meta( $product->get_id(), 'thc/cbd unit', true) ); ?></span></span>

    <?php endif; ?>

这是此代码在单个产品页面上的作用的图像。

现在,我在代码 sn-ps 中有一个函数,看起来像这样 ->

function display_test_markup() {

    esc_html_e( 'THC:', 'woocommerce' );

}
    
add_action( 'woocommerce_after_shop_loop_item_title', 'display_test_markup', 10 );

然后这样做 ->

我只是无法让它显示 get_post_meta() 部分。

【问题讨论】:

  • 我慢慢赢了。
  • 我已经读了好几遍了,还是不知道你在问什么。您能否提供您期望的 HTML 输出以及您当前通过代码获得的当前 HTML 输出?

标签: php wordpress woocommerce


【解决方案1】:
function lf_display_product_box_meta() {

    $id = get_the_ID();
    $display_min_max = get_post_meta( $id, 'show min max thc cbd', true );
    $unit = get_post_meta( $id, 'thc/cbd unit', true );
    if ( strpos( $display_min_max, 'true') !== false ) {
        $min_thc = get_post_meta( $id, 'min thc', true );
        $max_thc = get_post_meta( $id, 'max thc', true );
        $min_cbd = get_post_meta( $id, 'min cbd', true );
        $max_cbd = get_post_meta( $id, 'max cbd', true );
        
        if ( ! in_category( 'accessories' ) ) {
        
        echo '<div class="box_cannabinoid_wrapper">THC:' . $min_thc . '-' . $max_thc . $unit . '<br>CBD:' . $min_cbd . '-' . $max_cbd . $unit . '</div>';
            
        }
        
    }
    
    if ( strpos( $display_min_max, 'false') !== false ) {
        $thc = get_post_meta( $id, 'thc', true );
        $cbd = get_post_meta( $id, 'cbd', true );
        
        if ( ! in_category( 'accessories' ) ) {
        
            echo '<div class="box_cannabinoid_wrapper">THC:' . $min_thc . '-' . $max_thc . $unit . '<br>CBD:' . $min_cbd . '-' . $max_cbd . $unit . '</div>';
        
        }
        
    }
    
}
    
add_action( 'woocommerce_after_shop_loop_item_title', 'lf_display_product_box_meta', 10 );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多