首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在woocommerce站点的产品清单上添加快速编辑选项上的自定义产品字段

在woocommerce站点的产品清单上添加快速编辑选项上的自定义产品字段
EN

Stack Overflow用户
提问于 2014-12-02 17:17:21
回答 1查看 8.5K关注 0票数 7

如何在woocommerce商店的产品列表快速编辑屏幕上添加自定义产品字段/s?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 02:39:38

我不太确定这是否是最好的方法,但这对我很有用。

基本上,我的一般目标是为产品添加自定义字段,在这些有用的tuts的帮助下,我设法做到了(将自定义字段添加到单个产品页面)。

http://www.remicorson.com/mastering-woocommerce-products-custom-fields/ http://www.remicorson.com/woocommerce-custom-fields-for-variations/

在继续之前,我建议先检查这些链接。

现在,我想要做的是将这些自定义字段添加到产品列表中的快速添加选项中。

这就是资源稀缺的地方。

基本上我就是这么做的。

  1. 将自定义字段( html表单)添加到快速编辑选项中。为了实现这一点,我加入了'woocommerce_product_quick_edit_end'操作。这个钩子出现在woocommerce->includes->admin->views->html-quick-edit-product.php上的第195行上。
  2. 保存自定义字段。为了实现这一点,我加入了'woocommerce_product_quick_edit_save'操作。这个钩子是在woocommerce->includes->admin->class-wc-admin-post-types.php'quick_edit_save'函数中第929行中找到的。

前面的两个步骤完成了这个任务,它确实将值持久化,但是在通过快速编辑选项更新自定义字段之后,数据将持久化在后端,但不会填充到UI上的自定义字段中。所以我们需要第三步。

  1. 在产品列表列中添加自定义字段元数据,然后使用js提取出元数据,然后将其填充到自定义字段中。

我连接到'manage_product_posts_custom_column'操作以添加一个自定义HTML标记(div或其他什么)来保存我的自定义字段元数据。

然后,我使用javascript从元数据中提取数据并将其填充到自定义字段中。

步骤3只是WooCommerce如何完成此过程的一个副本。

为了便于参考,请看一下函数'render_product_columns' of woocommerce->includes->admin->class-wc-admin-post-types.php

还请看一看位于woocommerce->assets->js->adminwoocommerce->assets->js->admin

示例代码:请注意,下面的代码用于说明和指导目的,我的实际代码是相当长和复杂的。

步骤1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
add_action( 'woocommerce_product_quick_edit_end', function(){

    /*
    Notes:
    Take a look at the name of the text field, '_custom_field_demo', that is the name of the custom field, basically its just a post meta
    The value of the text field is blank, it is intentional
    */

    ?>
    <div class="custom_field_demo">
        <label class="alignleft">
            <div class="title"><?php _e('Custom Field Demo', 'woocommerce' ); ?></div>
            <input type="text" name="_custom_field_demo" class="text" placeholder="<?php _e( 'Custom Field Demo', 'woocommerce' ); ?>" value="">
        </label>
    </div>
    <?php

} );

第2步:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
add_action('woocommerce_product_quick_edit_save', function($product){

/*
Notes:
$_REQUEST['_custom_field_demo'] -> the custom field we added above
Only save custom fields on quick edit option on appropriate product types (simple, etc..)
Custom fields are just post meta
*/

if ( $product->is_type('simple') || $product->is_type('external') ) {

    $post_id = $product->id;

    if ( isset( $_REQUEST['_custom_field_demo'] ) ) {

        $customFieldDemo = trim(esc_attr( $_REQUEST['_custom_field_demo'] ));

        // Do sanitation and Validation here

        update_post_meta( $post_id, '_custom_field_demo', wc_clean( $customFieldDemo ) );
    }

}

}, 10, 1);

第3步:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
add_action( 'manage_product_posts_custom_column', function($column,$post_id){

/*
Notes:
The 99 is just my OCD in action, I just want to make sure this callback gets executed after WooCommerce's
*/

switch ( $column ) {
    case 'name' :

        ?>
        <div class="hidden custom_field_demo_inline" id="custom_field_demo_inline_<?php echo $post_id; ?>">
            <div id="_custom_field_demo"><?php echo get_post_meta($post_id,'_custom_field_demo',true); ?></div>
        </div>
        <?php

        break;

    default :
        break;
}

}, 99, 2);

JS部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jQuery(function(){
jQuery('#the-list').on('click', '.editinline', function(){

    /**
     * Extract metadata and put it as the value for the custom field form
     */
    inlineEditPost.revert();

    var post_id = jQuery(this).closest('tr').attr('id');

    post_id = post_id.replace("post-", "");

    var $cfd_inline_data = jQuery('#custom_field_demo_inline_' + post_id),
        $wc_inline_data = jQuery('#woocommerce_inline_' + post_id );

    jQuery('input[name="_custom_field_demo"]', '.inline-edit-row').val($cfd_inline_data.find("#_custom_field_demo").text());


    /**
     * Only show custom field for appropriate types of products (simple)
     */
    var product_type = $wc_inline_data.find('.product_type').text();

    if (product_type=='simple' || product_type=='external') {
        jQuery('.custom_field_demo', '.inline-edit-row').show();
    } else {
        jQuery('.custom_field_demo', '.inline-edit-row').hide();
    }

});
});

确保将脚本排成队列

希望这对任何人都有帮助,我也不确定这是否是最好的方法,但是在检查WooCommerce源代码时,WooCommerce似乎没有提供一个方便的钩子来轻松地完成这项任务(至少还没有)。

如果你有一个比这更好的方法,请分享。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27262032

复制
相关文章
shopify产品添加自定义字段如何实现
  前面我们讲了shopify段和块自定义字段的添加,如果想要在产品中添加自定义字段如何实现呢?比如ytkah的客户想要在产品页中加一个buy on Amazon的链接,一起来看看怎么操作吧
ytkah
2021/12/11
1.3K0
shopify产品添加自定义字段如何实现
产品浅谈用户分层在推荐上的应用
作者:zuliyang,腾讯PCG高级产品经理 |导语 常言道“物以类聚,人以群分”,运用在推荐策略上和常见的用户精细化运营策略类似,不同的用户群体行为存在差异,定向的归类建模单独施策以寻求差异化推荐,寻求各个分层用户的定向转化,最终实现业务核心指标的增长。 做过to C的产品人都经历过从前期的用户粗犷式运营到后期的流量精细化运营阶段,当业务指标提升空间遇到瓶颈或用户规模体量达到一定规模后,深耕用户流量精细化运营或许能带来些突破与可能。对于推荐业务用户分层是基于当前存量用户的行为或者属性做定向的划分,以
腾讯大讲堂
2020/12/16
2.4K0
mojoPortal在codeplex上的站点
mojoPortal 是一个开源的、用 C# 编写的站点框架和内容管理系统,可以运行在 Windows 中的 ASP.NET 和 Linux/Mac OS X 中的 Mono 下。可替换的数据访问层支持 MS SQL、MySQL、PostgreSQL、SQLite 和 FirebirdSQL,支持基于数据库、Active Directory, OpenLDAP, Open ID, 或 Windows Live ID 的授权。自从codeplex完全支持SVN进行源代码的管理,作者就考虑将mojoPortal
张善友
2018/01/30
6940
自定义WooCommerce分类每页产品数量
WooCommerce分类页默认显示为10个产品,但不同的模板显示样式不同,比如3列,那么最后一行就只有一个产品了,不是很协调,如果想要显示显示更多或更少要如何调整呢?要把如下代码copy到你主题functions.php文件中即可。
ytkah
2019/09/25
1.7K0
产品经理实用的工具清单
身为一枚猿猿,大环境下,我们能做的,只有努力提升自己技能以及知识领域广度。
贺biubiu
2019/04/24
2.9K0
产品经理实用的工具清单
woocommerce根据标题获取相关产品
  我们知道woocommerce的相关文章是根据分类category或标签tag来获取的,能不能实现根据标题来调取相关产品呢?get_posts() 函数可以根据库存、价格、自定义项、搜索条件等不同的标准来显示不同的相关产品,如何操作呢?随ytkah一起来看看
ytkah
2019/12/19
1.6K0
18个最佳的产品页面设计(上)
引言:本文展示了如何让页面变得有趣个性化,展现更多细节和与众不同,让访问者轻松获得想要的信息,下面的18个产品页面设计的最佳案例不容错过。
iCDO互联网数据官
2018/12/26
2.7K0
pageadmin CMS网站制作教程:站点添加自定义字段
这里只有一些最基本的参数设置,用过3.0版本或用过其他公司开发的cms的用户应该有这种体验,在站点设置中可以设置logo图片,备案号,底部内容等等。
Almost Lover
2019/03/20
8290
woocommerce分类页产品数量修改
  我们用woocommerce建商城,不同的模板分类页产品数量不同,如果想要显示更多或更少的数量要如何修改呢?很简单,一行代码就能搞定!打开当前主题的function.php文件,加入如下代码,把18改为任意您想要展示的数量,一般设为15到25,设置太多需要下拉屏幕太长,设置太少需要翻页的次数变多,可以根据实际需要修改
ytkah
2019/10/08
1.3K0
成为一个伟大的产品经理(上)
多年来,我管理过几百个产品或项目经理,并且与无数人合作过。我认为他们中的许多人都是业内最优秀的人。我把在他们身上看到的一些行为列在一起,写出了本文。这个列表也是我自己非常重视和尝试发展的技能和方法,并且以此衡量我自身的成长。
mixlab
2019/05/17
6190
成为一个伟大的产品经理(上)
CES 2017上最奇葩的科技产品
宏碁游戏本Predator 21XPredator 21X号称是世界上第一款曲面屏游戏本,搭载两个GeForce GTX 1080 GPU、两个电源、5个冷却风扇、9个导热管,最高支持4TB的固态硬盘
机器人网
2018/04/25
9710
CES 2017上最奇葩的科技产品
SAP MM 某项目上产品层次的设计
众所周知,SAP系统里物料主数据里有一个叫做产品层次(Product Hierarchy)的字段,它可以用于对物料做分类。
SAP虾客
2021/05/01
7610
Lighthouse的跨境电商独立站秘籍!
独立站火热的背后 对于中国的跨境电商平台卖家而言,2021年绝对是段低气压的时光:亚马逊掀起了一场规模庞大的“封号潮”,自4月起至9月,从头部到中小品牌,粗略统计有超过5万家店铺被封禁,累计损失超千亿。电商平台复杂、严格又阴晴不定的运营规则带来的是 “一夜回到解放前” 的风险。 伴随着风险而来的,是新的机会:跨境电商的运营逐渐转向了多渠道模式,除了继续合规地在电商平台运营店铺之外,独立站成为了风险均摊的新选择。 目前可供卖家选择的搭建独立站的方式包含两种: 第一种是以Shopify为代表的一站式电商服务平台
腾讯云计算产品团队
2022/08/25
14.5K2
Lighthouse的跨境电商独立站秘籍!
监控产品上新月报【10月】
云监控产品中心 10月功能发布总览: 应用性能观测 APM 1.支持 PHP 和 Python 语言探针部署,具体接入步骤可查看官网接入指南:  https://cloud.tencent.com/document/product/1463/57860。 2.调用查询支持业务标签搜索。 用户可根据按业务类型在上报数据时自定义标签 ,例如订单标签,购物车标签等,当用户订单出现异常,您可以快速到订单调用情况,包括响应时间、执行结果、服务状态等。 [点击查看大图] 例如在上报 PHP 应用数据时自定义标
腾讯云可观测平台
2021/11/09
6680
监控产品上新月报【12月】
应用性能观测 APM 1. 支持将APM 页面嵌入您的自建系统,更方便您查看应用性能数据。操作文档: https://cloud.tencent.com/document/product/1463/67296。 APM 满足不需要登录腾讯云控制台即可查询分析 APM 数据的诉求。通过内嵌应用性能观测控制台页面,可以给用户带来以下方便: 在外部系统服务中(例如公司内部运维或运营系统)快速集成 APM 数据的查询分析能力。 无需管理众多腾讯云子账号,方便将 APM 数据共享。 [点击查看大图] 2. 接
腾讯云可观测平台
2022/01/14
9630
监控产品上新月报【11月】
云监控产品中心11月功能发布总览: [点击查看大图] 应用性能观测 APM 1. 支持客户端采样,减少上报成本和链路存储成本。 在访问量较大时,全链路数据上报可能会导致使用 APM 的成本较高。在访问量级较大的情况下,往往会进行数据采样,减少上报成本和链路存储成本。 支持使用 Jaeger 和 Skywalking 进行客户端采样配置,详情请参考:https://cloud.tencent.com/document/product/1463/63816。 2. 支持服务端采样,减少链路存储成本。 A
腾讯云可观测平台
2021/12/09
6590
点击加载更多

相似问题

新产品清单上的新产品

11

在WooCommerce中将产品自定义字段添加到Admin产品批量编辑表单

26

在Woocommerce的商店模板上编辑产品模板

13

如果没有添加WooCommerce产品,则禁用产品页上的选项卡

14

在我的核心PHP站点或CodeIgniter站点上显示Woocommerce产品以及Magento产品

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文