Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Plugin Name: My Family
- Plugin URI:
- Description: Plugin for my Family
- Version: 0.1.0
- Author: David Saerang
- Author URI:
- */
- // disable direct access
- if ( ! defined( 'ABSPATH' ) ) {
- exit;
- }
- function family_options_install() {
- global $wpdb;
- $table_name = $wpdb->prefix . 'family_survey';
- $wpdb_collate = $wpdb->collate;
- $sql =
- "CREATE TABLE {$table_name} (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
- `nama` varchar(50) DEFAULT NULL,
- `email` varchar(150) DEFAULT NULL,
- `gambar` varchar(50) DEFAULT NULL,
- PRIMARY KEY (`id`)
- )
- COLLATE {$wpdb_collate}";
- require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
- dbDelta( $sql );
- }
- // run the install scripts upon plugin activation
- register_activation_hook(__FILE__, 'family_options_install');
- //menu items
- // add_action('admin_menu','family_modifymenu');
- function family_modifymenu() {
- //this is the main item for the menu
- add_menu_page('Family', //page title
- 'Family', //menu title
- 'manage_options', //capabilities
- 'family_list', //menu slug
- 'family_list' //function
- );
- //this is a submenu
- add_submenu_page('family_list', //parent slug
- 'Rekapan', //page title
- 'Rekap Family', //menu title
- 'manage_options', //capability
- 'lihat_rekap_family', //menu slug
- 'lihat_rekap_family'); //function
- //this submenu is HIDDEN, however, we need to add it anyways
- add_submenu_page(null, //parent slug
- 'Update Family', //page title
- 'Update', //menu title
- 'manage_options', //capability
- 'update_rekap_family', //menu slug
- 'update_rekap_family'); //function
- }
- // define('ROOTDIR', plugin_dir_path(__FILE__));
- function fam_subscriber_to_uploads() {
- $subscriber = get_role('subscriber');
- if ( ! $subscriber->has_cap('upload_files') ) {
- $subscriber->add_cap('upload_files');
- }
- }
- add_action('admin_init', 'fam_subscriber_to_uploads');
- function fam_input_form(){
- $nama = $_POST["user_name"];
- $email = $_POST["user_email"];
- $gambar = $_POST["async-upload"];
- //insert
- if (isset($_POST['insert'])) {
- global $wpdb;
- $table_name = $wpdb->prefix . 'family_survey';
- $wpdb->insert(
- $table_name,
- array(
- 'nama' => $nama,
- 'email' => $email,
- 'gambar' => $gambar,
- ),
- array('%s','%s','%s')
- );
- }
- ob_start();
- ?>
- <?php if ( is_user_logged_in() ): ?>
- <p class="form-notice"></p>
- <form action="" method="post" class="image-form">
- <?php wp_nonce_field('image-submission'); ?>
- <p><input type="text" name="user_name" placeholder="Your Name" required></p>
- <p><input type="email" name="user_email" placeholder="Your Email Address" required></p>
- <p class="image-notice"></p>
- <p><input type="file" name="async-upload" class="image-file" accept="image/*" required></p>
- <input type="hidden" name="image_id">
- <input type="hidden" name="action" value="image_submission">
- <div class="image-preview"></div>
- <hr>
- <p><input type="submit" name="insert" value="Submit"></p>
- </form>
- <?php else: ?>
- <p>Please <a href="<?php echo esc_url( wp_login_url( get_permalink() ) ); ?>">login</a> first to submit your image.</p>
- <?php endif; ?>
- <?php
- $output = ob_get_clean();
- return $output;
- }
- add_shortcode('family_form', 'fam_input_form');
- function fam_load_scripts() {
- wp_enqueue_script('image-form-js', plugin_dir_url( __FILE__ ) . 'js/myfam-public.js', array('jquery'), '0.1.0', true);
- $data = array(
- 'upload_url' => admin_url('async-upload.php'),
- 'ajax_url' => admin_url('admin-ajax.php'),
- 'nonce' => wp_create_nonce('media-form')
- );
- wp_localize_script( 'image-form-js', 'su_config', $data );
- }
- add_action('wp_enqueue_scripts', 'fam_load_scripts');
- function fam_image_submission_cb() {
- check_ajax_referer('image-submission');
- $user_name = filter_var( $_POST['user_name'],FILTER_SANITIZE_STRING );
- $user_email = filter_var( $_POST['user_email'], FILTER_VALIDATE_EMAIL );
- $image_id = filter_var( $_POST['image_id'], FILTER_VALIDATE_INT );
- if ( ! ( $user_name && $user_email && $image_id ) ) {
- wp_send_json_error( array('msg' => 'Validation failed. Please try again later.') );
- }
- $to = get_option('davidsaerang@gmail.com');
- $subject = 'New image submission!';
- $message = sprintf(
- 'New image submission from %s (%s). Link: %s',
- $user_name,
- $user_email,
- wp_get_attachment_url( $image_id )
- );
- $result = wp_mail( $to, $subject, $message );
- if ( $result ) {
- wp_send_json_error( array('msg' => 'Email failed to send. Please try again later.') );
- } else {
- wp_send_json_success( array('msg' => 'Your submission successfully sent.') );
- }
- }
- add_action('wp_ajax_image_submission', 'fam_image_submission_cb');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement