在 WooCommerce 中的简短描述之前显示自定义产品字段

2024-03-17

在简短描述之前,我在 WooCommerce 中添加新字段时遇到问题。

我在中使用了脚本functions.php我的新自定义字段显示正确,但是:

  • 使用脚本时简短描述消失,新字段显示正常。
  • 我可以编辑产品页面上字段的内容,但无法删除它。它始终是最后一个值。

如何在不删除产品简短描述的情况下显示此自定义字段?
如何重置此自定义字段内容?

这是我的代码:

// Add a custom Field
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );

function woo_add_custom_general_fields() {

  global $woocommerce, $post;

    woocommerce_wp_text_input( 
        array( 
            'id'          => '_text_field', 
            'label'       => __( 'Termin dostawy', 'woocommerce' ), 
            'placeholder' => 'np: 7 dni',
            'desc_tip'    => 'true',
            'description' => __( 'Wpisz przewidywany termin dostawy, np: 7 dni.', 'woocommerce' ) 
        )
    );

}

// Save the custom field
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){
    $woocommerce_text_field = $_POST['_text_field'];
    if( ! empty( $woocommerce_text_field ) )
        update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );

}

// Display the custom field
add_action('woocommerce_short_description', 'magik_custom_text', 10, 1);
function magik_custom_text()
{
     global $product;

     global $woocommerce, $post;
     echo "Termin dostawy: ".get_post_meta( $post->ID, '_text_field', true );
}

负责显示的函数:

add_action('woocommerce_short_description', 'magik_custom_text', 10, 1);
function magik_custom_text()
{

更新2:

1)您应该将其添加到简短描述中而不是替换它......

正确的方法是将您的自定义函数挂钩woocommerce_single_product_summary简短描述之前的 cation 挂钩(使用 11 到 19 之间的优先级):

add_action('woocommerce_single_product_summary', 'magik_custom_text', 18);
function magik_custom_text()
{
    global $post;
    $field_value = get_post_meta( $post->ID, '_text_field', true );
    // Displaying the custom field only when is set with a value
    if( ! empty( $field_value ) )
        echo '<p>' . __('Termin dostawy: ', 'woocommerce') . $field_value . '</p>';
}

代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。

经过测试并有效。所以你会得到这个:


2) 为了能够删除您的产品自定义字段的内容,您需要替换:

 if( ! empty( $woocommerce_text_field ) ) 

by:

 if( isset( $woocommerce_text_field ) )

在这个挂钩函数中:

add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){
    $woocommerce_text_field = $_POST['_text_field'];
    if( isset( $woocommerce_text_field ) )
        update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WooCommerce 中的简短描述之前显示自定义产品字段 的相关文章

  • 从 Yii2 中的联结表检索数据

    我试图从 Yii2 中的连接表获取数据无需额外查询 我有 2 个模型 用户 组 通过连接表 user group 关联 在 user group 表中 我想存储此关系的额外数据 管理标志 将数据添加到连接表的最佳方法是什么 link 方法接
  • 从 PHP 中的字符串中删除转义序列

    我正在使用一个已转义字符序列的 mysqldump 文件 我需要知道字符串的长度作为其数据库值 但转储中包含转义字符 这会增加字符串的长度 我用过stripslashes 它正确地取消转义单引号和双引号 但它不会触及 r n 我担心其中还有
  • 需要使用 imap php 保存电子邮件副本,然后可以在 Outlook Express 中打开

    我有 IMAP PHP 脚本 它连接并读取邮箱中的电子邮件 我正在寻找的是 我想将电子邮件保存在服务器磁盘上 并将其命名为 testing eml 文件 因此 当我稍后记下这些电子邮件时 可以在 Outlook Express 中查看 任何
  • Ioncube 编码的文件是否可以解码?

    我是一名 php 开发人员 我的客户计划分发一个使用 Php 开发的软件 计划使用 ioncube 或类似软件对文件进行编码 在谷歌搜索时 我发现很少有人解码这些文件 这些文件使用 ioncube 甚至其他软件进行编码 如果您询问是否可以破
  • 通过 PHP 检测 excel .xlsx 文件 mimetype

    我无法通过 PHP 检测 xlsx Excel 文件的 mimetype 因为它是 zip 存档 文件实用程序 file file xlsx file xlsx Zip archive data at least v2 0 to extra
  • PHP curl exec 在 php 脚本相同域上失败

    我使用 php curl 从同一域 url 中的 php 脚本获取内容 但我收到curl exec 错误 curl 错误代码为 28 或操作超时 经过几天的调试 我发现它可以在 htm 等非脚本页面上工作 但不能在 php 上工作 如果 u
  • 如何修复 Nginx 自动 301 重定向到带有尾部斜杠的相同 URL?

    当我尝试将 Web 应用程序的子目录中的索引文件访问到相同的 URL 但附加了斜杠 时 Nginx 出现了不良行为 它正在重新路由请求 我有一个简单的 Web 应用程序 其中设置了一个根目录和其中的许多子目录 每个子目录中都有一个 inde
  • mysqli::real_connect 和 new mysqli 对象在连接数据库方面有什么区别?

    我正在使用这种方法连接到mysql db this gt Con new mysqli this gt DB Server this gt DB User this gt DB Pass this gt DB DB 当我使用这种方法连接时有
  • Guzzle 中的“并发”到底是什么?

    我没有找到太多关于concurrency选项中Pool 如果这是可以在服务器上打开的 TCP 套接字数量 那么问题是 我可以使用多少并发来更快地处理请求 我有这个使用的例子Pool I am using Laravel this is ba
  • 下拉 24 小时选项值和 12 小时显示

    我需要创建一个时间数组 以便在 HTML 下拉列表中使用 数组键应采用 24 小时格式 值应采用 12 小时制 包含 am 和 pm 在数据库中我想存储 24 小时格式 有没有一种快速的方法来创建数组而不是每小时键入 example 00
  • MYSQL:SQL查询获取自增字段的值

    我有一张桌子 主键是id及其自动递增 现在 当我插入新记录时 我需要获取更新记录的 id 我怎样才能做到这一点 如果我使用查询 select max id from table name 执行后我可以获得id 但我能确定它是刚刚插入的记录的
  • 如果一个多维数组中的子数组与另一个多维数组不同,则覆盖该子数组

    我坚持这个问题 真的不知道如何解决 我有两个多维数组 需要将第二个数组中的每个 entry id 与第一个数组进行匹配 然后需要检查第二个数组中的每个 file no 是否在数据库 第一个数组 中 并且 status 是否与第一个数组匹配
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • 将 PHP 7 安装到我的服务器后,PHP 模块无法加载

    我将 PHP 7 安装到我的服务器上 因此 我没有 etc php5 和 etc php 7 0 当我运行我的网络应用程序时 我看不到任何以前的 CURL 或 fork 起初我收到这个错误消息 消息 调用未定义的函数curl init 安装
  • ASCII“../”是 PHP 中指示目录遍历的唯一字节序列吗?

    我有一个 PHP 应用程序 它使用 GET参数来选择文件系统上的 JS CSS 文件 如果我拒绝输入字符串包含的所有请求 或者可见 7 位 ASCII 范围之外的字节 当路径传递到 PHP 的底层 基于 C 文件函数时 这是否足以防止父目录
  • 我应该在 PHP 代码中使用断言吗?

    一位同事添加了assert http php net assert在我们的库中 在我本来会使用 if 语句并引发异常的地方执行几次命令 在此之前我什至从未听说过断言 以下是他如何使用它的示例 assert isset this gt rec
  • 将字符串分解为标记,保持引用的子字符串完整

    我不知道我在哪里看到它 但是谁能告诉我如何使用 php 和 regex 来完成这个任务 this is a string that has quoted text inside 我希望能够像这样爆炸它 0 this 1 is 2 a 3 s
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • 纯旧 PHP 对象 (POPO) 一词的确切含义是什么?

    我想了解一下波波 我搜索了 popo 发现它代表 Plain Old Php Object 但我不确定 Plain Old Php Object 的确切含义 我想知道什么是 popo 以及在哪里使用它 谢谢 普通旧 在此处插入语言 对象是一

随机推荐

  • Android:onScrollStateChanged SCROLL_STATE_IDLE 有时不会触发

    我遇到了一些问题 我在做什么 我有一个 ListView 其中有一些图像 为了使滚动更流畅 我禁用了滚动时显示的图像 现在好像有一个bug http code google com p android issues detail id 50
  • 设置输入文件表单的默认值[重复]

    这个问题在这里已经有答案了 可能的重复 动态设置文件输入的值 https stackoverflow com questions 1017224 dynamically set value of a file input 我有一个输入文件
  • 在 .NET .config 文件中读取和写入值

    我想对 user config 文件使用自定义路径 而不是让 NET 从默认位置读取它 我像这样打开文件 ExeConfigurationFileMap configMap new ExeConfigurationFileMap confi
  • 为什么 TDD“尖峰”被称为“尖峰”?

    测试驱动开发人员指的是快速 探索性的调查 包括编写代码以查看其是否有效 a spike 你知道他们为什么想出这个词吗 Update 肯特 贝克 Kent Beck 的造词对我来说看起来像是 原始 的 尽管他对这个词的使用在我看来没有多大意义
  • 使用XML关联子节点和父节点的值

    使用 R 的 XML 包时 如何保留与该节点关联的某个节点的数据 例如在同一个列表中 我正在尝试将从网络上抓取的数据放入数据框中 并将相关信息分组为行 有 span 没有类属性来区分的元素 可能有一个或两个 span 位于每个相关组 数据框
  • python beautifulsoup new_tag:将类指定为属性

    我对 python 和 beautifulsoup 都很陌生 所以也许我找不到一个简单的答案 当我打电话时 new tag name 我还可以分配属性 例如 new tag a href id link1 但我不能这样分配类 因为它是保留字
  • 声明 actionListener=“#{bean.method}” 时 不导航

    我正在尝试创建一个允许用户登录系统然后导航到主页的页面 我已经设法让它完成其中一项任务 但无法弄清楚如何让它同时完成两项任务 我爬遍了所有网站 但找不到合适的答案 请帮忙 我的代码如下 XHTML
  • Apache下载php文件而不是执行脚本

    我刚刚在运行 10 6 Apache2 PHP Mysql 的新 Mac 上设置了本地 Web 服务器 一切似乎都工作正常 除了当我导航到SOME 不是大多数 页面 Apache 下载 php 文件而不是执行它们 我认为这可能与 php 执
  • 布尔玛进度文本位于中间

    为什么当我使用 Bulma CSS 框架的进度时 https bulma io documentation elements progress https bulma io documentation elements progress 我
  • 无法在 MySQL Workbench 5.2.40 中创建表

    我刚刚创建了一个新架构并想要创建一个新表 当我右键单击我创建的 2myschema 并选择 新表 时 我为要创建的表指定了名称 但出现以下错误 我搜索了该错误 发现原因是我输入了保留字 例如 order 但 table2 不可能是保留字 并
  • HashSet为什么要排序? [复制]

    这个问题在这里已经有答案了 我正在学习 Java 中的容器 最近我读到 HashSet 没有按顺序给出元素 有什么有趣的Integer我随机制作的 HashSet 已排序 当我将其类型更改为Double打印的 HashSet 不再排序 我的
  • 编辑 ELF 文件中的变量值?

    我需要更改已编译的 ELF 文件中的几个变量 为了清楚地解释这一点 我将使用一个简单的 C 结构作为示例 单个源文件被编译并从 MyFile c 链接 0x1000 到 MyFile elf typedef struct uint32 t
  • DataGrid 的 CellEditingTemplate 和编辑模式下的焦点

    我在使用 WPFToolkit 时遇到问题DataGrid当定制色谱柱同时提供两者时CellTemplate and CellEditingTemplate 如果你看下面 你会看到我的编辑模板有一个CheckBox 从功能上来说一切都很好
  • Xcode 4 的隐藏功能

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 现在 Xcode 4 已正式发布 是时候跟进我之前的问题了 Xcode 的隐藏功能 https
  • WordPress API:添加/删除帖子上的标签

    我知道这似乎是一个简单的操作 但我找不到任何资源或文档来解释如何使用帖子 ID 以编程方式向帖子添加和删除标签 下面是我正在使用的示例 但它似乎覆盖了所有其他标签 function addTerm id tax term term id i
  • Bootstrap 3:防止模态内部的模态每次触发(hidden.bs.modal)

    我有一个模态位于另一个模态中 并且我设法使内部模态关闭而不影响另一个模态 问题是 当第二个模式关闭时 它会触发 hidden bs modal 事件本身和第一个模型
  • Android 模拟器不显示印地语字体

    我在模拟器上将语言环境更改为 hi IN 当我在模拟器上启动应用程序 甚至主屏幕 时 我看到的只是让人想起 我不知道如何渲染此字体 的框 任何关于为什么会发生这种情况以及如何消除这种情况的意见都是非常受欢迎的 我需要显示印地语字体以测试我的
  • 由于协议不匹配而阻止 iframe

    我正在尝试将值从父窗口发送到按钮上的框架click事件 但它在控制台上显示错误 未捕获的安全错误 阻止了具有来源的帧 http 本地主机 53838 http localhost 53838 访问来源为 null 的框架 请求访问的帧具有
  • 有一个用于反应本机选择器的占位符

    有没有办法在用户单击它之前显示反应本机选择器的占位符 我们的想法是有一个选择器显示 国籍 一旦您单击并选择您的国家 地区 它就会呈现该国家 地区 我想在不将 国籍 作为选择器中的可用选项的情况下执行此操作 将第一个孩子放置为
  • 在 WooCommerce 中的简短描述之前显示自定义产品字段

    在简短描述之前 我在 WooCommerce 中添加新字段时遇到问题 我在中使用了脚本functions php我的新自定义字段显示正确 但是 使用脚本时简短描述消失 新字段显示正常 我可以编辑产品页面上字段的内容 但无法删除它 它始终是最