在具有阈值的 WooCommerce 单品页面上显示每月分期付款价格

Show monthly installment prices on WooCommerce single product page with a treshold

我在我们的 WordPress/WooCommerce 系统上实现它时遇到了麻烦。

我们设计了一种方法,用户可以在产品页面上看到每月的分期付款价格。

add_action( 'woocommerce_before_add_to_cart_form', 'price_per_month', 5 );

function  price_per_month() {

    global $product;
    $price = $product->get_regular_price();
    $months1 = 3;
    $months2 = 6;
    $months3 = 12;
    $months4 = 24;

    $price_per_month1 = ($price / $months1);
    $price_per_month2 = ($price / $months2);
    $price_per_month3 = ($price / $months3);
    $price_per_month4 = ($price / $months4);
 
    echo "
    <div id='ppm-container'>
        <div id='ppm-text'>
            <b>Insert Title</b></br>
            Pay from only:</br>
            <b>PHP ". round($price/3,2,PHP_ROUND_HALF_UP) ."</b> for 3 months</br>
            <b>PHP ". round($price/6,2,PHP_ROUND_HALF_UP) ."</b> for 6 months</br>
            <b>PHP ". round($price/12,2,PHP_ROUND_HALF_UP) ."</b> for 12 months</br>
            <b>PHP ". round($price/24,2,PHP_ROUND_HALF_UP) ."</b> for 24 months</br>
            Insert Footer.</br>
        </div>
    </div>
    ";
     
}

如果原始价格低于 3000,我们想要的代码是 而不是 运行。我应该为此使用什么代码?我尝试了一个基本的 if/else 程序,但没有用。

我也希望收到有关此代码的反馈。我们正在寻找类似 to this one 的东西,但那是我们看到的唯一可用的插件。这些表格会自动计算指定范围内的每个月,因此我决定自己编写代码。

您可以使用 array and a foreach 循环而不是使用多个 if/else 条件。

对于阈值,您可以添加一个简单的 if 条件

所以你得到:

function price_per_month() {
    global $product;
    
    // Is a WC product 
    if ( is_a( $product, 'WC_Product' ) ) {
        
        // Only for 'simple' products
        if ( $product->is_type( 'simple' ) ) {          
            // Set months
            $months = array ( 3, 6, 12, 24 );
            
            // Treshold
            $treshold = 3000;
            
            // Get price
            $price = $product->get_regular_price();
            
            // Price greather than or equal to treshold
            if ( $price >= $treshold ) {        
                echo '<div id="ppm-container"><div id="ppm-text">';
                echo '<h2>Insert title</h2>';
                echo '<p>Pay from only:</p>';
                
                // Iterate over array
                foreach ( $months as $month ) {
                    echo '<p>PHP ' . round( $price / $month, 2, PHP_ROUND_HALF_UP ) . ' for ' . $month .  ' months</p>';
                }
                
                echo '<p>Insert Footer</p>';
                echo '</div></div>';
            }
        }
    }
}
add_action( 'woocommerce_before_add_to_cart_form', 'price_per_month', 5 );