在ACF字段上更新将字段值推送到WooCommerce元值

时间:2019-04-15 15:03:52

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

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

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

(1。任何人都可以向我展示执行此操作的代码吗?我进行了大量Google搜索,但找不到任何有用的解决方案。

  1. 一旦我有了更新字段的代码,如何找到每个特定wc字段的特定woocommerce钩子?

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

编辑: ACF具有用于根据另一个字段更新字段的代码 https://www.advancedcustomfields.com/resources/update_field/ 因此,我的问题是如何调整代码,以便更新附加到产品发布类型的ACF字段时,可以自动将该字段的值用于woocommerce产品数据值。

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

1 个答案:

答案 0 :(得分: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文件中。应该可以。