[Plugin: Testimonial] How To Manipulate Database From Admin Panel
-
Hello, I’m new to develop WordPress plugins. At this time, I’d try to build my own plugin which can be handle testimonials from front-end user. At the current, I have this 2 files of code and it did work to display form in the front-end web page.
‘ryadi-testimonial.php’
/** * Plugin Name: Ryadi Testimonial */ if(!isset($_SESSION)) session_start(); if ('ryadi-testimonial.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not access this file directly. Thanks!'); function ryadi_testimonial_activate() { global $wpdb; $tablename = $wpdb->prefix.'ryadi_testimonial'; $charset_collate = ''; if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) { if ( ! empty($wpdb->charset) ) $charset_collate = " DEFAULT CHARACTER SET $wpdb->charset"; if ( ! empty($wpdb->collate) ) $charset_collate .= " COLLATE $wpdb->collate"; } $sql = "CREATE TABLE IF NOT EXISTS <code>$tablename</code> ( <code>rt_id</code> int(4) UNSIGNED NOT NULL AUTO_INCREMENT, <code>rt_date</code> timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, <code>rt_approved</code> int(1) UNSIGNED NOT NULL, <code>rt_name</code> char(100) NOT NULL, <code>rt_email</code> char(100) NOT NULL, <code>rt_pic_url</code> char(150) NOT NULL, <code>rt_testimonial</code> text NOT NULL, PRIMARY KEY (<code>rt_id</code>) )$charset_collate;"; require_once ( ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } register_activation_hook( __FILE__, 'ryadi_testimonial_activate' ); function ryadi_testimonial_plugin_setup() { require_once( dirname(__FILE__).'/widgets/ryadi-input-testimonial-widget.php' ); load_plugin_textdomain('testimonial-basics', false, 'testimonial-basics/languages'); } add_action( 'plugins_loaded','ryadi_testimonial_plugin_setup');‘widgets/ryadi-input-testimonial-widget’
/* Plugin Name: Ryadi Testimonial Input Widget */ if(!isset($_SESSION)) session_start(); function ryadi_input_testimonial_widget() { register_widget ( 'ryadi_input_testimonial_widget' ); } add_action ( 'widgets_init','ryadi_input_testimonial_widget' ); class ryadi_input_testimonial_widget extends WP_Widget { function ryadi_input_testimonial_widget() { $widget_ops = array ( 'classname' => 'ryadi_input_widget_class', 'description' => __('This widget will allow a user to input a testimonial.','ryadi-testimonial') ); $this->WP_Widget( 'ryadi_input_testimonial_widget', __('Testimonial Input Widget','ryadi-testimonial'), $widget_ops ); } function form($instance) { if ($instance) { $title = esc_attr($instance['title']); $text = esc_attr($instance['text']); $textarea = esc_textarea($instance['textarea']); } else { $title = ''; $text = ''; $textarea = ''; } ?> <p> <label for="<?=$this->get_field_id('title'); ?>"><?php _e('Widget Title', 'ryadi-testimonial'); ?></label> <input class="widefat" id="<?=$this->get_field_id('title'); ?>" name="<?=$this->get_field_name('title'); ?>" type="text" value="<?=$title; ?>" /> </p> <?php } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['text'] = strip_tags($new_instance['text']); $instance['textarea'] = strip_tags($new_instance['textarea']); return $instance; } function widget($args, $instance) { extract( $args ); $title = apply_filters('widget_title', $instance['title']); if (isset($_POST['rytitle'])) { $rytitle = trim($_POST['rytitle']); $ryname = trim($_POST['ryname']); $ryemail = trim($_POST['ryemail']); $rytestimonial = trim($_POST['rytestimonial']); $ryerror = ''; if ($rytitle == '' || $ryname == '' || $ryemail == '' || $rytestimonial == '') { $ryerror = 'Please fill all required fields'; } else { //Do something } } else { $rytitle = ''; $ryname = ''; $ryemail = ''; $rytestimonial = ''; } echo $before_widget; ?> <div class="widget-text wp_widget_plugin_box"> <?=( $title ) ? $before_title . $title . $after_title : 'Testimonials'?> <form method="post"> <label>Title*</label><input name='rytitle' value="<?=$rytitle?>" /><br /> <label>Name*</label><input name='ryname' value="<?=$ryname?>" /><br /> <label>Email*</label><input name='ryemail' value="<?=$ryemail?>" /><br /> <label>Testimonial*</label><input name='rytestimonial' value="<?=$rytestimonial?>" /><br /> <?php if ($ryerror != '') : ?><label class="error-message"><?=$ryerror?></label><?php endif; ?><br /> <input type="submit" name="rysubmit" value="SUBMIT" /> </form> </div> <?php echo $after_widget; } }I don’t have any idea, how to create panel so I can manipulate (add, edit, delete) data entry from admin panel? It doesn’t matter for the security, I will learn it in the next level. Any link or help, I would be appreciate it. 🙂
Anyway, sorry for my english.
The topic ‘[Plugin: Testimonial] How To Manipulate Database From Admin Panel’ is closed to new replies.