@alex5792
front man

Wordpress Shortcode ничего не возвращает?

Добрый день, на странице Wordpress сайта есть шорткод должен запускать функцию и выводить таблицу, но ничего не происходит, ошибок в консоле нету. Также есть абсолютно идентичный сайт (плагины, версии) просто на другом домене и там он работает отлично. Единственная разница заключается в том, что на сайте, где шорткод не сработал дебаг вернул такое: Notice: wp_enqueue_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks.
Да проблема может быть в том, что какая-то функция не так подключена, но почему тогда абсолютно идентичный сайт работает отлично, буду благодарен за любую помощь
Прикрепляю код файла шорткода:
<?php 
/**
 * Plugin Name: Buddy Beunstoppable Core
 * Description: Plugin contain some custom work done by buddydevelopers(1naveengiri) for extra ACF profile fields.EP_MONTH
 * Version: 0.1
 * Plugin Author: 1naveengiri
 * Text Domain: buddy-beunstoppable-main
 * Domain Path: /languages
 */

function beunstoppable_extra_fields_callback( $atts ) {
  $atts = shortcode_atts( array(
    ), $atts, 'beunstoppable_extra_fields' );
    $bb_selected_groups_option = get_option( 'bb_selected_groups_option' );
    $field_group = acf_get_fields($bb_selected_groups_option);
    ob_start();
    $user_id = get_current_user_id(); 
    global $wpdb;
    $table = $wpdb->prefix.'bb_users_extra';

    if( isset( $_GET['action'] ) && 'delete' === $_GET['action'] && isset( $_GET['val'] ) && !empty( $_GET['val'] ) ){
        $wpdb->delete( $table, array( 'id' => intval( $_GET['val'] ) ) );
    }
    if( isset( $_POST['save_tracker_info'] ) && !empty( $_POST['save_tracker_info'] )){
        // update_field
        $nonce = sanitize_text_field( $_POST['_trackers_acf_nonce'] );
        if( wp_verify_nonce( $nonce, 'buddy-tracker-acf-fields' )  ){
            echo '<div class="messages">';
            if( !empty( $field_group ) ){
                foreach( $field_group as $key => $field ){
                    if( isset( $field['name'] ) && !empty( $field['name'] )){
                        $field_val = sanitize_text_field( $_POST[ $field['name'] ] );
                        if( !empty( $field_val )){
                            $wpdb->insert(
                                $table,
                                array( 
                                    'userid' => $user_id, 
                                    'field_type' => $field['name'],
                                    'field_values' => $field_val, 
                                    'date' => current_time( 'mysql' )
                                ),
                                array('%d','%s', '%s', '%s') 
                            );
                        }
                    }
                }
                if( !empty( $wpdb->insert_id ) ){
                    echo '<p class="success-msg">Successfully saved tracker info</p>';
                } else{
                    echo '<p class="error-msg">Unable to save tracker info</p>';
                }
            }
            echo '</div>';
        }else{
            echo '<div class="messages"><p class="error-msg">Security check not passed</p></div>';
        }
        echo("<script>location.href = '".get_permalink()."';</script>");
    }
    // buddy-tracker-acf-fields
    if( !empty( $field_group ) ){
        echo '<form name="extra_field_groups_form" method="post">';
        foreach( $field_group as $key => $field ){
            ?>
            <label for="acf-field-acf_pro_licence"><?php _e($field['label'], 'buddy-beunstoppable-main'); ?></label>
            <?php 
            $field['key'] = '';
            $field['prefix'] = '';
            acf_render_field( $field );
            wp_nonce_field( 'buddy-tracker-acf-fields', '_trackers_acf_nonce' );
        }
        echo '<input type="submit" name="save_tracker_info" value"'. __( 'Update', 'buddy-beunstoppable-main') .'"/>';
        echo '</form>';
    }
    if( !empty( $field_group ) ){
        ?>
        <style>
            .extra_fields_tbl .counter-even{
                background-color: #cccc;
            }
            .extra_fields_tbl .counter-odd{
                background-color: #f3c4c4;
            }
        </style>
        <?php 
        echo '<table class="extra_fields_tbl">';
            echo '<tr>';
                echo '<th>'.  __( 'Tracker Item', 'buddy-beunstoppable-main') .'</th>';
                echo '<th>'.  __( 'Value', 'buddy-beunstoppable-main') .'</th>';
                echo '<th>'.  __( 'Date', 'buddy-beunstoppable-main') .'</th>';
                echo '<th>'.  __( 'Settings', 'buddy-beunstoppable-main') .'</th>';
            echo '</tr>';
            $counter = 'odd';
            foreach( $field_group as $key => $field ){
                if( 'odd' === $counter ){
                    $counter = 'even';
                } else{
                    $counter = 'odd';
                }
                if( isset( $field['name'] ) && !empty( $field['name'] )){
                    $query = $wpdb->prepare( "select * from ".$table.' where field_type=%s AND userid=%d', $field['name'], $user_id );
                    $extra_fields_values = $wpdb->get_results($query, ARRAY_A );

                    if( !empty( $extra_fields_values ) ){
                            foreach( $extra_fields_values as $field_key => $field_value ){
                                if( !empty( $field_value ) && isset( $field_value['field_values'] ) && !empty( $field_value['field_values'] )){
                                    echo '<tr class="counter-'.$counter.'">';
                                        echo '<td>'.  __( $field['label'], 'buddy-beunstoppable-main') .'</td>';
                                        echo '<td>'.  $field_value['field_values'] .'</td>';
                                        echo '<td>'.  $field_value['date'] .'</td>';
                                        $url = add_query_arg( array(
                                            'val' => $field_value['id'],
                                            'action' => 'delete',
                                        ), get_permalink() );

                                        echo '<td><a href="'.$url.'">remove</a></td>';
                                    echo '</tr>';
                                }
                            }
                    }
                }
                // echo '</table><table>';
            }
        echo '</table>';
    }
    $content = ob_get_contents();
    ob_get_clean();
    return $content;
}
add_shortcode( 'beunstoppable_extra_fields', 'beunstoppable_extra_fields_callback' );


register_activation_hook( __FILE__, 'beunstoppable_create_database_tbl' );
/**
 * Create table for GDT user data storage.
 */
function beunstoppable_create_database_tbl() {
    global $wpdb;
    $gdt_users_table_name = $wpdb->prefix . 'bb_users_extra';
    $charset_collate = $wpdb->get_charset_collate();
    $gdt_sql = "CREATE TABLE $gdt_users_table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        userid bigint(20) NOT NULL,
        field_type varchar(200) NOT NULL,
        field_values varchar(20) NOT NULL,
        date datetime NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $gdt_sql );
}

add_action( 'admin_menu', 'bb_test_settings_plugin_menu');
/**
 * Function to add BB Core Plugin setting page
 */
function bb_test_settings_plugin_menu() {
    add_menu_page( 
        __( 'Beunstoppable Core', 'textdomain' ),
        'Beunstoppable Setting',
        'manage_options',
        'bb-settings',
        'bb_settings_callback' 
    ); 
}
function bb_settings_callback(){
    $selected = 0;
    if( isset( $_POST['bb_save_data'] ) && isset( $_POST['page_id'] ) && !empty( $_POST['page_id'] ) ){
        update_option('bb_selected_groups_option', $selected );
    }
  $selected = get_option('bb_selected_groups_option');
    ?>
    <div class="wrap">
        <h1><?php _e( 'Beunstoppable Core Plugin', 'buddy-beunstoppable-main' ); ?></h1>
        <form method="post">
            <label><?php _e( 'Tracker ACF Fields', 'buddy-beunstoppable-main' ); ?></label>
            <?php 
            wp_dropdown_pages(array('post_type'=>'acf-field-group', 'selected' => $selected ));
            ?>
            <input type='submit' value='Submit' class='btn button' name='bb_save_data'/>
        </form>
    </div>
    <?php 
}
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Шут его знает, разбираться в такой портянке не айс.

например тут
if (isset( $var ) && !empty( $var ))

проговорите условие в слух - "Если установлено значение $var и если $var существует "
Тут достаточно передать 0 и все, проверка не пройдена
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы