生成随机订单号但阻止在 WooCommerce 中重新生成

2023-12-06

我试图在创建订单号时添加一个随机字符串,因为默认的序列号很容易被猜到。

我尝试了这个片段:

function generate_random_string( $length = 16 ) {
    return substr( str_shuffle( str_repeat( $x = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil( $length / strlen( $x ) ) ) ), 1, $length );
}
    
add_filter( 'woocommerce_order_number', 'ct_change_woocommerce_order_number', 1, 2);

function ct_change_woocommerce_order_number( $order_id, $order ) {
     $random_string1 = generate_random_string(5);
    return $random_string1 . $order->get_id();
}

问题是,每次在某处请求订单号时,都会更改订单号。

如果我使用恒定的前缀和后缀,这将起作用,但实际上,同一订单每次都会显示不同的订单号。有什么建议吗?


为了防止这种情况,您可以将结果保存为元数据,一旦存在,返回元数据而不是函数的结果

所以你得到:

function generate_random_string( $length = 16 ) {
    return substr( str_shuffle( str_repeat( $x = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil( $length / strlen( $x ) ) ) ), 1, $length );
}

function filter_woocommerce_order_number( $order_number, $order ) {
    // Get meta
    $random_meta_string = $order->get_meta( '_random_meta_string' );

    // When meta empty
    if ( empty ( $random_meta_string ) ) {
        // Call function
        $generate_random_string = generate_random_string( 5 );

        // Append
        $random_string = $generate_random_string . $order->get_id();

        // Add the meta data
        $order->update_meta_data( '_random_meta_string', $random_string );

        // Return random string
        $order_number = $random_string;
    } else {
        // Return meta
        $order_number = $random_meta_string;
    }
    
    return $order_number;
}
add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生成随机订单号但阻止在 WooCommerce 中重新生成 的相关文章

  • 为什么我在这段代码中不断得到两个相同的随机值? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么我的随机数生成器在 C 中不是随机的 https stackoverflow com questions 932520 why does it appear that my random num
  • WordPress 中的 jQuery.post()

    我目前正在为 Wordpress 编写一个聊天框插件 该插件使用 jQuery post 方法将数据发送到 php 文件 以便将输出写入 html 文件 该文件又将使用 jQuery 加载到聊天窗口 在我用来将聊天日志写入html文件的ph
  • AWS EC2 上的 Wordpress - 分配弹性 IP 后损坏

    所以 我安装了 WordPress 并且运行得很好 我可以通过从实例获得的公共 DNS 访问该站点和 wp admin 但是 一旦我创建了弹性 IP 并将其与实例关联 我就无法再访问 wp admin 并且主页样式表和 JavaScript
  • 枚举上的 random.choice

    我想用random choice on an Enum I tried class Foo Enum a 0 b 1 c 2 bar random choice Foo 但是这段代码失败了KeyError 我怎样才能随机选择一个成员Enum
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • 如何在图像附件页面上显示帖子附加的图像数量?

    我使用图像附件页面以幻灯片形式一一显示附加到帖子的图像 我希望能够显示附加到父帖子的图像总数以及任何给定附件页面上显示的特定图像的数量 以便您看到图片和文字 第 3 张图片 共 15 张 例如 更新 我能够使用以下代码获取要显示的总数
  • 无法与站点通信以检查致命错误

    无法与站点通信以检查致命错误 因此 PHP 更改已恢复 您需要通过其他方式上传 PHP 文件更改 例如使用 SFTP 有什么解决办法 我正在 WordPress 中编辑头文件 遇到这个问题 尝试这个 我有同样的问题并决定调查一下 更改 wp
  • 用于自定义短代码的 Visual Composer 自定义标记 (vc_map)

    试图得到自定义标记使用 WordPress 的 Visual Composer 构建器 Found Visual Composer 更改自定义短代码模板 https stackoverflow com questions 24073053
  • 由商店经理根据指定的分类术语过滤 WooCommerce 订单

    我想将带有特定产品标签的订单分配给后端的特定商店经理 并隐藏其余订单 我目前正在使用WooCommerce 订单拆分器 https wordpress org plugins woo order splitter免费插件可按项目 产品 将订
  • 根据产品类别自定义购物车总计和结帐总计文本

    我想根据产品类别 或其他一些逻辑 自定义购物车和结帐订单汇总表中的文本 例如 对于 总计 文本 参见图片 如果购物车包含名为 杂货 的类别中的产品 那么我希望订单摘要中的文本显示为 总计估计 文本 参见图片以下 如果购物车不包含任何杂货 那
  • sklearn.model_selection.train_test_split 示例中的“随机状态”是什么? [复制]

    这个问题在这里已经有答案了 有人能给我解释一下吗random state在下面的例子中意味着什么 import numpy as np from sklearn model selection import train test split
  • 如何在 WordPress 中添加 PHP 页面链接到我的页脚

    我创建了一个自定义 PHP 页面名称 privacy policy 名称为privacy php 我如何链接页脚中的页面 以便当有人点击隐私链接时页面打开 我已在此页面中调用页眉和页脚 这个怎么做 谢谢 In the wp content
  • 如何快速从文件夹树中选取随机文件?

    我试图从文件夹树中选择一个随机文件 从固定路径开始 并在所有子文件夹 或所选文件夹本身 中递归 搜索 我的想法是 创建文件列表 计算文件数量 在该范围内选择一个随机数 然后选择该索引处的文件 这是我的代码 create list of al
  • 如何按年和月对 WordPress 帖子进行分组?

    我正在尝试创建一个带有后查询并在输出中具有以下结构的函数 2021 January 1 Post Title 2 Post Title March 3 Post Title 2020 May 4 Post Title 这是我到目前为止所做的
  • 如何获取wordpress中文件的本地路径

    由于在wordpress中 上传的文件 图像以3种不同的大小存储 从而占用内存 我有一个代码可以根据给定图像的 URL 来调整图像的大小 调整大小的代码是 img wp get image editor image url if is wp
  • PHP随机输出数组元素

    我如何从大约 20 个元素的数组中随机回显 5 个元素 Thanks 这有效吗 values array rand input 5 或者 作为更灵活的功能 function randomValues input num 5 return a
  • Woocommerce 从 woocommerce_add_to_cart_fragments 传回的错误片段

    我正在创建自定义 WooCommerce 购物车 并且更新购物车商品的数量工作正常 唯一的问题是它不会自动刷新 只有在页面加载后才起作用 我当前的代码使用woocommerce add to cart fragments挂钩并使用传入的 f
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • java代码的等效vb代码

    谁能告诉我这段Java代码到底做了什么 SecureRandom random SecureRandom getInstance SHA1PRNG byte bytes new byte 20 synchronized random ran
  • 从 Go Slice 中选择一个随机值

    情况 我有一些值 需要从中随机选择一个值 然后我想将它与固定字符串连接起来 到目前为止 这是我的代码 func main create the reasons slice and append reasons to it reasons m

随机推荐

  • 如何查找 SQL Server 中所有数据库中所有表的列名

    我想找到所有表中的所有列名在所有数据库中 有没有一个查询可以为我做到这一点 尝试这个 select o name c name from sys columns c inner join sys objects o on c object
  • Microsoft Graph - 允许用户访问应用程序/服务主体

    我们正在向员工推出一个主要应用程序 它已设置为使用 Azure AD SSO 目前我们必须通过 Azure AD gt 应用程序 gt 用户手动设置每个用户才能访问该应用程序 我们有一个小型 C Web 应用程序 用于管理 AD 用户希望使
  • 使用 PushState 为 Backbone SPA 配置 Node Express

    我的 Express 应用程序有一个休息服务器和一个使用 Backbone 的 SPA 使用 history一切正常 即 Backbone history start If I do Backbone history start pushS
  • 使用 C# 写入 Excel

    我有一个基本的 WinForms 应用程序 并且希望能够将该应用程序中的数据写入 Excel 电子表格 到目前为止我有以下代码 Microsoft Office Interop Excel Application excelapp new
  • 自定义上传按钮

    嗨 我只是想知道如何创建自己的自定义文件上传按钮 因为我能做的最好的就是 我想要实现的是 如果有的话我会非常感激 请我提供解释如何使用代码执行此操作的答案 而不是包含允许您下载按钮或类似内容的网站链接的答案 谢谢 尽管其中一些答案会创建一些
  • 历史数据的非抽样报告自动化

    我们有一个客户每天收到 2 400 万次访问 因此我们只能获得未抽样的报告 因为它超出了谷歌的限制 对于尚未存储数据的特殊查询 最多 500 000 个会话 我们正在尝试收集 1 天期间的独立访客和访问次数 事实证明 当数据被采样时 使用
  • 给定 k 个已排序数组,从每个数组中选择一个元素,使得所选元素的最大元素和最小元素之差最小

    给定 k 个已排序数组 从每个数组中选择一个元素 使得所选元素的最大元素和最小元素之差最小 k 3 的示例 数组1 1 13 27 30 数组2 16 20 29 数组3 2 3 14 18 19 22 25 28 答 2 选定的元素 27
  • 将指针/引用作为参数传递给变量

    我知道这个问题已经被问过多次 是的 我做了一些研究 但我找不到适合我需求的解决方案 到目前为止我所做的 我正在构建一个函数 用于跟踪用户向下滚动页面的百分比并将其很好地显示在某个进度条中 这工作得很好 但是当我在 Chrome 上打开开发者
  • 如何让 OpenMP 在 MSVC 2015 上运行 clang

    我尝试让 clang 5 0 0 适用于 Visual Studio 2015 因为我需要 OpenMP 3 0 功能 我安装了clang编译器 不是没有任何openmp支持的vs2015版本 并使用cmake cmake minimum
  • 通过 javascript 更改页面比例

    我希望根据分辨率缩放网站主体 但代码似乎不起作用 document body style transform scale window screen availHeight 2 document body style o transform
  • 对动态表行进行编号

    我正在使用 jQuery 制作动态 HTML 表格 在表中 我的用户有两种交互 追加一行 删除特定行 对行进行编号的问题是 如果用户删除特定行 则该行后面的所有行都需要重新编号 我必须选择已删除行之后的所有行并将其行数减去 1 有更好的方法
  • 如何在 SQL Server 上启用 MSDTC?

    这甚至是一个有效的问题吗 我有一个使用 MSTDC 的 NET Windows 应用程序 它抛出异常 System Transactions TransactionManagerCommunicationException 分布式事务管理器
  • 为什么 elementtree.ElementTree.iterparse 使用这么多内存?

    我正在使用 elementtree ElementTree iterparse 来解析一个大的 371 MB xml 文件 我的代码基本上是这样的 outf open out txt w context iterparse copyrigh
  • easeljs 将图像分割成几部分

    我是 easeljs 的新手 想知道如何将图像分割成给定数量的块 根据我到目前为止收集到的信息 我应该使用 SpriteSheets 来完成此任务 然而 我见过的唯一教程是在一张 SpriteSheet 中包含多个图像的教程 而不是将一张图
  • 服务器发送事件在 Google Chrome 中不起作用

    这是我的服务器 JSP 代码 Server Date jsp 这是我的客户端 jsp 页面 Client Serverdate jsp
  • 将一列 json 字符串转换为一列数据

    我有一个大约 30000 行的大数据框和一个包含 json 字符串的列 每个 json 字符串都包含许多变量及其值 我想将此 json 字符串分解为数据列 两行看起来像 0 a 1 b 2 c 3 1 a 4 b 5 c 6 我想将其转换为
  • 在各州之间共享 $Scope 数据

    我正在尝试从孩子访问父状态 我尝试过这个 但它不起作用 angular module myApp controller compareCtrl scope function scope scope test scope parent ser
  • 尝试了解 REPL 上声明的类在内部是如何处理的

    我试图了解 REPL 中范围界定的工作原理 我尝试按照 Joshua Suereth 的 Scala 深入 一书的第 5 1 1 节进行操作 这是在 Windows XP Java 7 和 Scala 2 9 1 上进行的 我声明一个类Di
  • 如何使用 JFileChooser 查找文件位置

    有没有一种方法可以用来简单地查找文件位置 我试图允许用户选择一个文件并打开它 但我必须让 JFileChooser 选择文件并将位置发送到另一个方法 最好的方法是什么 中的例子javadoc显示执行此操作 JFileChooser choo
  • 生成随机订单号但阻止在 WooCommerce 中重新生成

    我试图在创建订单号时添加一个随机字符串 因为默认的序列号很容易被猜到 我尝试了这个片段 function generate random string length 16 return substr str shuffle str repe