在具有阈值的 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 );
我在我们的 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 );