在 WooCommerce 单品页面上根据时间范围显示 ACF 字段
Show ACF field based on time range on WooCommerce single product page
我正在尝试在 WooCommerce 单个产品页面上显示文本 ACF。基于时间范围。
这是我目前使用的代码:
function time_promo() {
// Set the correct time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set( 'Europe/Brussels' );
// Set the start time and the end time
$start_time = mktime( 06, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$end_time = mktime( 15, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$time_now = strtotime( 'now' );
// Check time
if ($time_now >= $start_time && $time_now <= $end_time){
// Show Field
echo '<p id="promo">'.get_field('promo').'</p>';
}
}
add_action( 'woocommerce_single_product_summary', 'time_promo' );
然而,这并没有在单品页面上显示任何内容。谁能告诉我哪里错了?
这会起作用,如果不起作用,您会看到原因。
根据您的需要进行调整:
function action_woocommerce_single_product_summary() {
// Set the correct time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set( 'Europe/Brussels' );
// Set the start time and the end time
$start_time = mktime( 06, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$end_time = mktime( 21, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$time_now = strtotime( 'now' );
// Check time
if ( $time_now >= $start_time && $time_now <= $end_time ) {
// ACF plugin is active
if ( class_exists('ACF') ) {
// Get field
$promo = get_field('promo');
// Check if value exists
if ( $promo ) {
// Show Field
echo '<p id="promo">' . $promo . '</p>';
} else {
echo '<p id="promo">ACF field not found!</p>';
}
} else {
echo '<p id="promo">ACF does not exist!</p>';
}
} else {
echo '<p id="promo">The time conditions are not met!</p>';
}
}
add_action( 'woocommerce_single_product_summary', 'action_woocommerce_single_product_summary', 11 );
我正在尝试在 WooCommerce 单个产品页面上显示文本 ACF。基于时间范围。
这是我目前使用的代码:
function time_promo() {
// Set the correct time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set( 'Europe/Brussels' );
// Set the start time and the end time
$start_time = mktime( 06, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$end_time = mktime( 15, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$time_now = strtotime( 'now' );
// Check time
if ($time_now >= $start_time && $time_now <= $end_time){
// Show Field
echo '<p id="promo">'.get_field('promo').'</p>';
}
}
add_action( 'woocommerce_single_product_summary', 'time_promo' );
然而,这并没有在单品页面上显示任何内容。谁能告诉我哪里错了?
这会起作用,如果不起作用,您会看到原因。
根据您的需要进行调整:
function action_woocommerce_single_product_summary() {
// Set the correct time zone (http://php.net/manual/en/timezones.php)
date_default_timezone_set( 'Europe/Brussels' );
// Set the start time and the end time
$start_time = mktime( 06, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$end_time = mktime( 21, 00, 00, date( 'm' ), date( 'd' ), date( 'y' ) );
$time_now = strtotime( 'now' );
// Check time
if ( $time_now >= $start_time && $time_now <= $end_time ) {
// ACF plugin is active
if ( class_exists('ACF') ) {
// Get field
$promo = get_field('promo');
// Check if value exists
if ( $promo ) {
// Show Field
echo '<p id="promo">' . $promo . '</p>';
} else {
echo '<p id="promo">ACF field not found!</p>';
}
} else {
echo '<p id="promo">ACF does not exist!</p>';
}
} else {
echo '<p id="promo">The time conditions are not met!</p>';
}
}
add_action( 'woocommerce_single_product_summary', 'action_woocommerce_single_product_summary', 11 );