wordpress WooCommerce可变产品:在HTML表格中显示某些变化值

ttcibm8c  于 2022-11-22  发布在  WordPress
关注(0)|答案(1)|浏览(181)

在Woocommerce中,我想创建一个函数,输出一个简单的HTML表格,其中包含变量乘积的每个variationheightwidthregular pricesale price
例如,假设变量product包含三个不同维度的变量,我需要让函数输出以下HTML:

<table>
<thead>
    <tr>
        <th>Height</th>
        <th>Width</th>
        <th>Regular price</th>
        <th>Sale price</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>180cm</td>
        <td>100cm</td>
        <td>224€</td>
        <td>176€</td>
    </tr>
    <tr>
        <td>210cm</td>
        <td>125cm</td>
        <td>248€</td>
        <td>200€</td>
    </tr>
    <tr>
        <td>240cm</td>
        <td>145cm</td>
        <td>288€</td>
        <td>226€</td>
    </tr>
</tbody>

我不确定如何为此生成函数,以便将其添加到**content-single-product.php内的woocommerce_after_single_product**操作中。

chhkpiq4

chhkpiq41#

更新*(2018年3月27日-仅限于可变产品,避免错误)*

下面是在**woocommerce_after_single_product**action钩子中实现钩子的正确方法:

add_action( 'woocommerce_after_single_product', 'custom_table_after_single_product' );
function custom_table_after_single_product(){
    global $product;

   // Only for variable products
   if( ! $product->is_type('variable')) return; 

    $available_variations = $product->get_available_variations();

    if( count($available_variations) > 0 ){

        $output = '<table>
            <thead>
                <tr>
                    <th>'. __( 'Height', 'woocommerce' ) .'</th>
                    <th>'. __( 'Width', 'woocommerce' ) .'</th>
                    <th>'. __( 'Regular price', 'woocommerce' ) .'</th>
                    <th>'. __( 'Sale price', 'woocommerce' ) .'</th>
                </tr>
            </thead>
            <tbody>';

        foreach( $available_variations as $variation ){
            // Get an instance of the WC_Product_Variation object
            $product_variation = wc_get_product($variation['variation_id']);

            $sale_price = $product_variation->get_sale_price();
            if( empty( $sale_price ) ) $sale_price = __( '<em>(empty)</em>', 'woocommerce' );

            $output .= '
            <tr>
                <td>'. $product_variation->get_height() .'</td>
                <td>'. $product_variation->get_width() .'</td>
                <td>'. $product_variation->get_regular_price() .'</td>
                <td>'. $sale_price .'</td>
            </tr>';
        }
        $output .= '
            </tbody>
        </table>';

        echo $output;
    }
}
  • 代码在您的活动子主题(或主题)的function.php文件中,也可以在任何插件文件中。*

所有代码都在Woocommerce 3+上测试并工作。

相关问题