我有一个API,希望以此填充网站上的选定字段。我可以对数据进行硬编码以提取分类数据,但是如果分类数据不存在,则需要创建它并填充选择字段。
用户将在自定义帖子类型-get_vehicle_data_cta
的Wordpress后端中单击一个按钮,这将激活对功能get_vehicle_data
的Wordpress AJAX请求。在此函数中,我获得了分类数据,然后将其返回。我想将此数据传递给get_vehicle_data_html
函数,然后使用jQuery将值附加到选择字段。
可以在此处找到屏幕截图-https://prnt.sc/n9jcfj
<?php
function get_vehicle_data_box() {
add_meta_box(
'get_vehicle_data_cta',
'Vehicle Data',
'get_vehicle_data_html',
'cars', /* the request post type */
'side',
'high'
);
}
add_action( 'add_meta_boxes', 'get_vehicle_data_box' );
add_action( 'wp_ajax_get_vehicle_data', 'get_vehicle_data' );
function get_vehicle_data() {
$car_make = get_terms(array(
'taxonomy' => 'car_make',
'hide_empty' => false));
foreach($car_make as $make) {
if($_COOKIE['make'] == $make->slug) {
$make_term = $make->term_id;
$make_name = $make->name;
}
}
wp_die("OK");
}
function get_vehicle_data_html() {
wp_nonce_field( 'request_send_post_details', 'request_cta_nonce' );
?>
<a href="#" id="btn-call-to-action" class="button button-primary widefat">Get Vehicle Data</a>
<script>
jQuery(function($){
$( "#get_vehicle_data_cta #btn-call-to-action" ).on("click", function(){
var nonce = $(this).parent().find("#request_cta_nonce").val();
$.post(
ajaxurl,
{
action: 'get_vehicle_data',
nonce: nonce
},
function( response ){
if ( 'OK' == response ) {
// API Values
var make = "vauxhall";
var model = "astra";
var trim = "hr-v";
var body_style = "mpv";
var transmission = "manual";
// Set API Values in Cookie
document.cookie = "make=" + make;
document.cookie = "model=" + model;
document.cookie = "trim=" + trim;
document.cookie = "body_style=" + body_style;
document.cookie = "transmission=" + transmission;
// Append values to the select fields
$('#acf-field_588f3b69b836f').append("<option value='<?php echo $make_term; ?>' selected><?php echo $make_name; ?></option>");
}
else {
alert( 'Something went wrong, try again' );
};
}
);
});
});
</script>
<?php
}
我遇到的问题:
get_terms()
函数没有结果,则创建分类法,然后将值分配给变量$make_term
和$make_name