如何锁定在管理区域创建的 WooCommerce 日期

How to lock WooCommerce date created on administration area

你好有人帮助我,关于我在 woocommerce 上的案例,我想在你在后端区域添加订单时锁定在 woocommerce 后端区域创建的日期。

我在这里发现了同样的情况 -

是否有不需要任何 JavaScript

的可用片段

所以我们开始了。您首先需要在您的子主题中创建一个 admin.js 文件。您可以将其放入名为 js:

的文件夹中
- ChildTheme
   - js
    - admin.js

在此之后,我们需要将此文件包含到 WordPress 中。为此,您需要将这部分代码放入您的 functions.php 文件中:

/**
 * Add ressources to dashboard page
 */
add_action( 'admin_enqueue_scripts', 'admin_enqueue_styles' );
function admin_enqueue_styles() {
    wp_enqueue_script( 'admin-js', get_stylesheet_directory_uri() . '/js/admin.js' );
}

现在您的 admin.js 在 WordPress 后端已知。现在打开文件并将其放入您的文件以禁用 WooCommerce 订单的 datetime 输入:

jQuery(document).ready(function () {
    jQuery(".order_data_column .date-picker, .order_data_column .hour, .order_data_column .minute").prop('disabled', true);
});

保存并上传到您的服务器。清除 cookie 并重新加载页面。现在应该禁用日期和时间输入。让我知道它是否适合你。

更新

如果您想使用 CSS,您不应该只禁用所有日期选择器 类。我会在这里更具体,只禁用您真正想要禁用的日期选择器:

.order_data_column .date-picker,
.order_data_column .hour,
.order_data_column .minute {
    pointer-events: none;
}

为了让它更漂亮,您可以将包装器的光标设置为不允许:

#order_data .order_data_column .form-field {
    cursor: not-allowed;
}

这将进入您的 admin.css 文件。

机器人解决方案正在运行。它们都有优点和缺点。

JS 解决方案是基于 HTML 的,因为这会为每个指定的输入字段设置一个 disabled 参数。这是一个 后端代码 解决方案。

CSS 解决方案根本不会禁用输入。您只需禁用光标单击此特定字段。所以这是一个基于视图的解决方案。

我用这个简单的 CSS 解决了我的问题,在订单后端禁用该日期...

.date-picker {pointer-events: none}