| Server IP : 62.60.133.156 / Your IP : 216.73.217.51 Web Server : LiteSpeed System : Linux linux24.centraldnserver.com 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64 User : mimradmin ( 1166) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, exec, popen, proc_open MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/mimradmin/.trash/wp-content/plugins/persian-woocommerce/include/tools/ |
Upload File : |
<?php
defined( 'ABSPATH' ) || exit;
if ( ! class_exists( 'PW_Tools_DatePicker' ) ) :
class PW_Tools_DatePicker {
const SCREENS = [
'product' => 'product',
'shop_order' => 'shop_order',
'woocommerce_page_wc-orders' => 'shop_order',
'shop_coupon' => 'shop_coupon',
'ووکامرس_page_wc-reports' => 'report',
'woocommerce_page_wc-reports' => 'report',
'WooCommerce_page_wc-reports' => 'report',
];
public function __construct() {
if ( PW()->get_options( 'enable_jalali_datepicker', 'no' ) == 'yes' ) {
add_action( 'admin_enqueue_scripts', [ $this, 'datepicker' ], 1000 );
add_action( 'admin_print_footer_scripts', [ $this, 'inline_js' ] );
}
}
public function datepicker() {
if ( isset( self::SCREENS[ urldecode( get_current_screen()->id ) ] ) ) {
wp_enqueue_style( 'pw-datepicker-css', PW()->plugin_url( 'assets/css/persian-datepicker.css' ) );
wp_enqueue_script( 'pw-datepicker-js', PW()->plugin_url( 'assets/js/persian-datepicker.min.js' ) );
}
}
public function inline_js() {
$screen = get_current_screen()->id;
if ( ! isset( self::SCREENS[ urldecode( $screen ) ] ) ) {
return true;
}
$method_name = "inline_js_" . self::SCREENS[ urldecode( $screen ) ];
?>
<style type="text/css">
#ui-datepicker-div {
display: none !important;
}
</style>
<?php
$this->{$method_name}();
}
public function inline_js_product() {
?>
<script type="text/javascript">
(function ($) {
$(document).ready(function () {
let _sale_price_dates_from = $("#_sale_price_dates_from").val();
$("#_sale_price_dates_from").persianDatepicker({
formatDate: "YYYY-0M-0D",
selectedBefore: _sale_price_dates_from.length ? 1 : 0,
selectedDate: _sale_price_dates_from.length ? _sale_price_dates_from.replace(/-/gi, "/") : null
});
let _sale_price_dates_to = $("#_sale_price_dates_to").val();
$("#_sale_price_dates_to").persianDatepicker({
formatDate: "YYYY-0M-0D",
selectedBefore: _sale_price_dates_to.length ? 1 : 0,
selectedDate: _sale_price_dates_to.length ? _sale_price_dates_to.replace(/-/gi, "/") : null
});
$("div.woocommerce_variations").on("click", "a.sale_schedule", function () {
let el_to = $(this).parent().parent().next().find("input[name*=to]");
let el_date_to = el_to.val();
el_to.persianDatepicker({
formatDate: "YYYY-0M-0D",
selectedBefore: el_date_to.length ? 1 : 0,
selectedDate: el_date_to.length ? el_date_to.replace(/-/gi, "/") : null
});
let el_from = $(this).parent().parent().next().find("input[name*=from]");
let el_date_from = el_from.val();
el_from.persianDatepicker({
formatDate: "YYYY-0M-0D",
selectedBefore: el_date_from.length ? 1 : 0,
selectedDate: el_date_from.length ? el_date_from.replace(/-/gi, "/") : null
});
});
});
})(jQuery)
</script>
<?php
}
public function inline_js_shop_order() {
?>
<script type="text/javascript">
jQuery(function ($) {
let order_date = $("input[name=order_date]").val();
$("input[name=order_date]").persianDatepicker({
formatDate: "YYYY-0M-0D",
selectedBefore: 1,
selectedDate: order_date.length ? order_date.replace(/-/gi, "/") : null
});
});
</script>
<?php
}
public function inline_js_shop_coupon() {
$coupon = new WC_Coupon( intval( $_GET['post'] ) );
$expiry_date = $coupon->get_date_expires( 'edit' ) ? $coupon->get_date_expires( 'edit' )->date_i18n( 'Y/m/d' ) : '';
?>
<script type="text/javascript">
jQuery(function ($) {
$("input[name=expiry_date]").val('<?php echo esc_attr( $expiry_date ); ?>');
let expiry_date = $("input[name=expiry_date]").val();
let args = {
formatDate: "YYYY-0M-0D",
selectedDate: null
};
if (expiry_date.length) {
args.selectedBefore = 1;
args.selectedDate = expiry_date.replace(/-/gi, "/");
}
$("input[name=expiry_date]").persianDatepicker(args);
});
</script>
<?php
}
public function inline_js_report() {
?>
<script type="text/javascript">
jQuery(function ($) {
$("input[name=start_date]").persianDatepicker({
formatDate: "YYYY-0M-0D",
showGregorianDate: 1,
});
$("input[name=end_date]").persianDatepicker({
formatDate: "YYYY-0M-0D",
showGregorianDate: 1,
});
});
</script>
<?php
}
}
endif;
PW()->tools->datepicker = new PW_Tools_DatePicker();