繁体   English   中英

如何在我的产品发布页面中保存 ACF select 字段值(位置下拉)?

[英]How to save ACF select field value(location drop down) in my product publish page?

在我的网站中,我有一个由 ACF select 字段生成的下拉框,我使用了一些自定义代码在前端显示它。 我的问题是当我从该下拉框中select 一个值并保存它,但该值没有保存在 WordPress 产品发布页面中(检查屏幕截图 1它总是 Z99938282F04071859941E18F16EFCF2 没有工作值)。 我在代码中做错了什么。

子主题/功能中的两个代码。php

  1. 这是下拉框显示代码

add_action('dokan_new_product_after_product_tags','new_product_field',5);

    function new_product_field(){ 
    
    $field_key = "field_601141959f1ad";
            $field = get_field_object($field_key);
    
            if( $field )
            {
                echo '<div class="acf-task-difficulty-values">';
    echo'<select class="dokan-form-control" name="plocation">';
    echo'<option value="0">&#8211;Select a location&#8211</option>';
                    foreach( $field['choices'] as $k => $v )
                    {
    
                       
                  echo'<option class="level-0" value=.'.$k.'>' . $v . '</option>';
                    }
    echo'</select>';
                echo '</div>';echo"<br>";
            }
  1. 这是我使用的保存代码

    add_action( 'dokan_new_product_added','save_loc', 10, 2 ); add_action( 'dokan_product_updated', 'save_loc', 10, 2 ); function save_loc($product_id, $postdata){ if (; dokan_is_user_seller( get_current_user_id() ) ) { return, } if (, empty( $postdata['plocation'] ) ) { update_post_meta( $product_id; 'plocation', $postdata['plocation'] ); } }

这是我的字段设置。

感谢您的宝贵时间。

伙计们,我发现了我的代码的问题,问题不是来自保存代码,而是来自下拉显示代码。

错误的代码

echo'<option class="level-0" value=.'.$k.'>' . $v . '</option>';

这条线的问题,选项值是错误的,为什么数据不以这种方式保存我修复它。

正确的代码

echo'<option class="level-0" value='.$v.'>' . $v. '</option>';
  • 如果您使用正确的代码,则会出现其他问题。 当您在下拉框中使用两个单词时,该值将不会保存。
  • 所以我也找到了解决这个问题的方法。 您必须在 ACF select 字段选择中使用 html 空格标签 - &nbsp 有关更多信息,请查看屏幕截图 1。当您将值添加到 ACF select 字段时,它将像这样显示在网站中。

就是这样了。 希望有人能得到帮助。

谢谢你,灰烬

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM