尝试城市的演出名单

时间:2019-01-28 15:47:04

标签: php html wordpress plugins

首先,对不起我的可怕英语=)

我会尽力解释是如何工作的一切:

我用它来创建要在我的网站上搜索的“协议”,所以基本是名称,以及“协议”的作用范围,例如州和城市...但是当我尝试时,我遇到了问题选择“国家”后显示的城市选择在我的“协议”可以用来保存和展示在网站上。 但是当我选择州时,WordPress只是不显示城市,并且在WordPress插件中出现了一些问题(例如:高级自定义字段)后便出现了此问题

和知道,我不知道我怎么能解决这个问题。

这是我的代码:

//Load cities - Convenio

function ag_apcef_load_cities_field_choices( $field ) {
    // get selected
    $selected = get_field( 'ag-estado-convenio', $post->ID );
    // reset choices
    $field['choices'] = array();


    if($selected) {
        $args = array(
            'post_type' => 'cities',
            'orderby' => 'title',
            'order' => 'ASC',
            'posts_per_page' => -1,
            'meta_query' => array(
                array(
                   'key'     => 'city_meta_box_state',
                   'value'   => $selected->ID
                )
            )
        );

        $posts = get_posts( $args );
        foreach($posts as $post) {
            $field['choices'][$post->ID] = $post->post_title;
        }
    }

    return $field;
}
add_filter('acf/load_field/name=ag-cidade-convenio', 'ag_apcef_load_cities_field_choices');


 // Admin enqueue - Convenio

function ag_apcef_admin_convenio_enqueue( $hook ) {
    // Allowed post types
    $types = array( 'convenio' );

    if( !in_array( get_post_type(), $types ) )
        return;

    wp_enqueue_script( 'populate-area', get_stylesheet_directory_uri() . '/js/autopopulate-admin.js' );

    wp_localize_script( 'populate-area', 'populate_vars', 
        array(
            'populate_nonce' => wp_create_nonce( 'populate_nonce' ), // Create nonce
        )
    );
}
add_action( 'admin_enqueue_scripts', 'ag_apcef_admin_convenio_enqueue' );


 //Enqueue - Convenio

function ag_apcef_convenio_enqueue() {
  if ( is_page( 'portal-de-vantagens' ) || is_page( 'bem-estar' )) {
    wp_enqueue_script( 'populate-area', get_stylesheet_directory_uri() . '/js/autopopulate.js' );

    wp_localize_script( 'populate-area', 'populate_vars', 
        array(
            'populate_nonce' => wp_create_nonce( 'populate_nonce' ), // Create nonce
            'ajaxurl' => admin_url( 'admin-ajax.php' )
        )
    );
  }
}
add_action( 'wp_enqueue_scripts', 'ag_apcef_convenio_enqueue' );


 //  Load cities by state

function ag_apcef_city_by_state( $selected_state ) {
    // Verify nonce
    if( !isset( $_POST['populate_nonce'] ) || !wp_verify_nonce( $_POST['populate_nonce'], 'populate_nonce' ) )
        die('Permission denied');

    // Get selected state
    $selected_state = $_POST['state'];

    // Populate arr_data
    $arr_data = array();
    if(!empty($selected_state)) {
        $args = array(
            'post_type' => 'cities',
            'orderby' => 'title',
            'order' => 'ASC',
            'posts_per_page' => -1,
            'meta_query' => array(
                array(
                   'key'     => 'city_meta_box_state',
                   'value'   => $selected_state
                )
            )
        );

        $posts = get_posts( $args );
        foreach($posts as $post) {
            $arr_data[] = [
                'key' => $post->ID,
                'value' => $post->post_title
            ];
        }
    }

    return wp_send_json($arr_data);
    die();
}
add_action('wp_ajax_apcef_city_by_state', 'ag_apcef_city_by_state');
add_action('wp_ajax_nopriv_apcef_city_by_state', 'ag_apcef_city_by_state');

0 个答案:

没有答案