prefix . 'callback';
$sql = "CREATE TABLE $table_name (
id int(11) NOT NULL AUTO_INCREMENT,
date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
name varchar(255) DEFAULT NULL,
content longtext NOT NULL,
UNIQUE KEY id (id)
);";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'samlab_callback_activate' );
register_uninstall_hook( __FILE__, 'samlab_callback_drop_tables');
function samlab_callback_drop_tables()
{
//drop a custom db table
global $wpdb;
$wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'callback' );
delete_option('callback-settings');
}
// Include the dependencies needed to instantiate the plugin.
foreach ( glob( plugin_dir_path( __FILE__ ) . 'admin/*.php' ) as $file ) {
load_plugin_textdomain( 'callback-settings', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
include_once $file;
}
add_action( 'plugins_loaded', 'samlab_сallback_settings' );
//для админки ajax для фронта ajax
add_action( 'wp_ajax_getformsamlab', 'samlab_сallback_getform' );
add_action( 'wp_ajax_nopriv_getformsamlab', 'samlab_сallback_getform' );
//для админки ajax для фронта ajax
add_action( 'wp_ajax_nopriv_sampostmessage', 'samlab_сallback_postmessage' );
add_action( 'wp_ajax_sampostmessage', 'samlab_сallback_postmessage' );
function samlab_сallback_add_script() {
$option = get_option( 'callback-settings' );
?>
init();
add_action( 'admin_init', 'samlab_сallback_settings_init' );
//ajax запрос для удаления вешаем на хукsamlab_сallback_dellrecord
add_action('wp_ajax_samlabdellrecord', 'samlab_сallback_dellrecord');
add_action('wp_ajax_samlabgettable', 'samlab_сallback_gettable');
add_action('admin_print_footer_scripts', 'samlab_сallback_addjavascript', 99);
//add widget to admin
$option = get_option( 'callback-settings' );
if($option['adminwidget'] == '1'){
add_action( 'wp_dashboard_setup', 'samlab_сallback_adddashboardwidgets' );
}
add_action( 'admin_print_footer_scripts', 'samlab_сallback_addquicktags' );
}
//////
## Произвольный виджет в консоли в админ-панели
function samlab_сallback_dashhelp() {
global $wpdb;
$table_name = $wpdb->prefix . 'callback';
$posts = $wpdb->get_results("SELECT * FROM ".$table_name." ORDER BY id DESC LIMIT 0,20");
echo '
';
echo '
'. __("Date", "callback-settings") .'
'. __("Name\Email", "callback-settings") .'
'. __("Message", "callback-settings") .'
';
foreach($posts as $res){
echo '
'. $res->date . '
' . $res->name . '
' . $res->content . '
';
}
echo '
';
echo '
';
}
function samlab_сallback_adddashboardwidgets() {
wp_add_dashboard_widget( 'custom_help_widget',
__("Сallback", "callback-settings"),
'samlab_сallback_dashhelp' );
// Globalize the metaboxes array, this holds all the widgets for wp-admin
global $wp_meta_boxes;
// Get the regular dashboard widgets array
// (which has our new widget already but at the end)
$normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
// Backup and delete our new dashbaord widget from the end of the array
$example_widget_backup = array( 'example_dashboard_widget' =>
$normal_dashboard['example_dashboard_widget'] );
unset( $normal_dashboard['example_dashboard_widget'] );
// Merge the two arrays together so our widget is at the beginning
$sorted_dashboard = array_merge( $example_widget_backup, $normal_dashboard );
// Save the sorted array back into the original metaboxes
$wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
}
//////////////
function samlab_сallback_getform(){
global $wpdb;
$option = get_option( 'callback-settings' );
$tempform .= '