wordpress 使用来自google sheet或第三方API的数据动态填充下拉CF7字段

46qrfjad  于 2023-06-21  发布在  WordPress
关注(0)|答案(1)|浏览(119)

如何从Google表格电子表格中检索数据并使用该数据填充 Contact Form 7 下拉字段?
我能找到的所有解决方案都是如何将数据从 Contact Form 7 发送到Google电子表格,并且没有反向的解决方案。
我有一个API,从那里我可以得到数据列表,我想通过Zapier获得该数据,并使用该数据填充Google表单,然后使用电子表格中的数据填充许多 Contact Form 7 下拉字段,位于许多网站中。

eiee3dmh

eiee3dmh1#

在评论讨论之后,一个解决方案是通过API从第三方源检索选项的下拉列表,并在加载表单时动态填充CF 7表单下拉列表。
使用Smart Grid layout CF 7扩展插件提供的动态下拉字段可以实现这一点。该字段可以采用3个动态数据源来填充下拉字段:分类法目录;一系列的帖子;或以编程方式提供列表的过滤器挂钩函数。最后一个选项可用于通过API从第三方源以编程方式获取所需的列表。假设表单动态下拉字段名为zappier-select,插件将自动创建一个过滤器帮助代码,如下所示:

add_filter( 'cf7sg_custom_dynamic_select','zapier_select_dynamic_options',10,3);
/**
* Filter dropdown options for dynamic drodpwn list of taxonomy terms.
* @param Array $options the option to filter.
* @param WPCF7_FormTag $tag field tag object.
* @param string $cf7_key  the form unique key.
* @return Array $options return either an array of <option value> => <option label> pairs or 2 arrays, one for values and another for attributes.
*/
function zapier_select_dynamic_options($options, $tag, $cf7_key){
  if('ui-form'!==$cf7_key || 'zapier-select' !== $tag->name){
    return $options;
  }
  //these are the label users will see when the dropdown opens.
  //you can group your options if need be. Let's assume you have an array of arrays of data to display in groups.

  $data = ... //fetch your data from your API third-party.

  foreach($data as $value=>$label){
    $options[$value]=$label;
    //if you are displaying more complex select2 fields, or imagegrid for dynamic checkbox, then add extra parameters into a 2nd array of attributes,
    $options['values'][$value]=$label;
    $options['attributes'][$value]= array('data-thumbnail'=>'<image url>');
  }
  return $options;
}

更多例子,请看youtube tutorial

相关问题