【问题标题】:On ACF field update push field value to WooCommerce meta value在 ACF 字段更新推送字段值到 WooCommerce 元值
【发布时间】:2019-04-15 15:03:51
【问题描述】:

我在 woocommerce(住宿预订)产品上使用高级自定义字段 (ACF) 插件字段,当 ACF 字段更新时,我想将这些值推送到特定的 woocommerce 字段。

使用的预订插件是 Woocommerce 预订 - 预订和预订和 Woocommerce 住宿预订(主要 woocommerce 预订插件的住宿预订扩展)

(1. 谁能给我看一下代码来做这样的事情吗?我在谷歌上搜索了很多,但找不到任何有用的解决方案。

  1. 获得更新字段的代码后,如何找到每个特定 wc 字段的特定 woocommerce 挂钩?

  2. 另外,我如何告诉 wc 产品是住宿预订类型?)

编辑: ACF 有一个代码可以根据另一个字段更新一个字段 https://www.advancedcustomfields.com/resources/update_field/ 所以,我的问题是如何调整代码,以便当附加到产品帖子类型的 ACF 字段更新时,可以自动使用该字段的值作为 woocommerce 产品数据值。

例如,我有一个 ACF 字段“每晚价格”,我在该字段中输入了一个数字。当我点击更新该产品时,我希望该数字自动进入标准价格的 woocommerce 产品数据中。

【问题讨论】:

  • 欢迎来到 Stack OverFlow...拜托,规则是当时的一个问题...见How to ask
  • @LoicTheAztec 这都是一个问题。我只是这样写出来以确保所有人都能理解我的问题。
  • 第 3 步是另一个不同的问题……

标签: php wordpress woocommerce metadata advanced-custom-fields


【解决方案1】:

您搜索的不是很好,请参阅this simple search with "ACF action hook when update a field"

第一个链接很好,要使用的钩子是这样的:

add_action('acf/save_post', 'my_acf_save_post', 1);
function my_acf_save_post( $post_id ) {

    // bail early if no ACF data
    if( empty($_POST['acf']) ) {
        return;
    }

    // An array of fields values
    $fields = $_POST['acf'];

    // Get a specific field value and push to a specific Woocommerce meta data
    if ( isset($fields['field_abc123']) ) {
        $field_abc123 =  $fields['field_abc123'];

        // Push to a specific woocommerce meta data:
        update_post_meta( $post_id, 'targeted_meta_key', sanitize_text_field( $field_abc123 ) );
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。它应该可以工作。

【讨论】:

  • 我看到了,但它没有解释如何将 acf 值放入 woocommerce 产品数据中
  • @Gary65 那是另一个问题...您一次要问多个问题...您应该从第 3 步开始提问...没人能猜出您的 ACF 设置是什么以及您使用的是什么预订插件...所以您的评论问题无法回答。这个答案回答了第 1 点和第 2 点。
猜你喜欢
  • 2022-07-09
  • 2019-11-10
  • 2014-07-07
  • 2017-01-06
  • 2018-11-20
  • 2021-06-04
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
相关资源
最近更新 更多