首页 > 解决方案 > 在 ACF 字段更新推送字段值到 WooCommerce 元值

问题描述

我在 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 产品数据。

标签: phpwordpresswoocommercemetadataadvanced-custom-fields

解决方案


您没有很好地搜索看到这个简单的搜索“更新字段时的 ACF 操作挂钩”

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

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 文件中。它应该工作。


推荐阅读