تایمر تخفیف محصول

ساخت وبلاگ

سلام
کد زیر برای نمایش تایمر تخفیف محصول هست برای محصولات تخفیف دار تایمر نمایش میده ولی برای همه محصولات تخفیف تایمر یکجور نمایش میده (درصورتی که زمان پایان تخفیف محصولات با هم فرق دارند) باید چیکار کنم؟

/*تایمر تخفیف محصول*/
function show_sale_timer_shortcode() { global $product; if ( is_a($product, 'WC_Product') && $product->is_on_sale() ) { $sale_start_date = get_post_meta( get_the_ID(), '_sale_price_dates_from', true ); $sale_end_date = get_post_meta( get_the_ID(), '_sale_price_dates_to', true ); if ( $sale_start_date && $sale_end_date ) { $current_time = current_time( 'timestamp', true ); if ( $current_time >= $sale_start_date && $current_time <= $sale_end_date ) { $time_remaining = $sale_end_date - $current_time; // افزودن تایمر و اسکریپت جاوااسکریپت برای به‌روزرسانی تایمر بدون رفرش صفحه $output = '<p id="sale-timer">تخفیف تا: <span class="timer">' . gmdate("H:i:s", $time_remaining) . '</span></p>'; $output .= ' <script> jQuery(function($) { function updateTimer() { $.ajax({ url: "'.admin_url('admin-ajax.php').'", type: "POST", data: { "action": "update_sale_timer", "product_id": "'.get_the_ID().'" }, success: function(response) { $(".timer").html(response); } }); } setInterval(updateTimer, 1000); }); </script>'; return $output; } } }
}
add_shortcode('show_sale_timer', 'show_sale_timer_shortcode');
// تابع برای به‌روزرسانی زمان تایمر با استفاده از AJAX
add_action('wp_ajax_update_sale_timer', 'update_sale_timer_callback');
add_action('wp_ajax_nopriv_update_sale_timer', 'update_sale_timer_callback');
function update_sale_timer_callback() { if ( isset($_POST['product_id']) ) { $product_id = $_POST['product_id']; // بازگردانی محصول با استفاده از ID محصول $product = wc_get_product($product_id); $sale_start_date = get_post_meta( $product_id, '_sale_price_dates_from', true ); $sale_end_date = get_post_meta( $product_id, '_sale_price_dates_to', true ); if ( $sale_start_date && $sale_end_date ) { $current_time = current_time( 'timestamp', true ); if ( $current_time >= $sale_start_date && $current_time <= $sale_end_date ) { $time_remaining = $sale_end_date - $current_time; // کم کردن مقدار ثابت از زمان باقی‌مانده $time_remaining -= 60; // مثال: از هر بار به‌روزرسانی، یک دقیقه (60 ثانیه) کم می‌کنیم $formatted_time = gmdate("H:i:s", $time_remaining); // ارسال زمان به فرانت‌اند برای نمایش به کاربر echo $formatted_time; wp_die(); } } } echo 'متاسفانه خطا رخ داده است.'; wp_die();
}

با [show_sale_timer] نمایش داده میشود

1 نوشته - 1 participants

مشاهده متن کامل موضوع

سون لرن • آموزش...
ما را در سایت سون لرن • آموزش دنبال می کنید

برچسب : نویسنده : استخدام کار 7learn بازدید : 34 تاريخ : دوشنبه 25 دی 1402 ساعت: 13:19

خبرنامه