- File: Ajax.php
- Full Path: /home/matthif/www/wp-content/plugins/uber-grid/src/Ajax.php
- Date Modified: 03/16/2023 5:23 PM
- File size: 5.21 KB
- MIME-type: text/x-php
- Charset: utf-8
<?php
namespace PfhubPortfolio;
use PfhubPortfolio\Helpers\GridHelper;
class Ajax
{
public static function init() {
add_action( 'wp_ajax_pfhub_portfolio_action', array( __CLASS__, 'callback' ) );
add_action( 'wp_ajax_nopriv_pfhub_portfolio_action', array( __CLASS__, 'callback' ) );
}
public static function callback() {
global $wpdb;
if ( $_POST['task'] == 'optonschange' ) {
if ( isset( $_POST['id'] ) ) {
if( !isset( $_REQUEST['nonce'] ) || !wp_verify_nonce( $_REQUEST['nonce'], 'pfhub_portfolio_change_options' ) ){
die( __( 'Authentication failed', 'pfhub_portfolio' ) );
}
$id = intval($_POST['id']);
if( !$id ){
wp_die( __( 'Not numeric id', 'pfhub_portfolio' ) );
}
$query = $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "pfhub_portfolio_grids WHERE id = %d", $id );
$row = $wpdb->get_row( $query );
$response = array(
'portfolio_effects_list' => $row->grid_view_type,
'pfhub_portfolio_show_sorting' => $row->pfhub_portfolio_show_sorting,
'pfhub_portfolio_show_filtering' => $row->pfhub_portfolio_show_filtering,
'sl_pausetime' => $row->description,
'sl_changespeed' => $row->param,
'pause_on_hover' => $row->pause_on_hover
);
echo json_encode( $response );
wp_die();
}
}
if ( $_POST['post'] == 'optionssave' ) {
if ( isset( $_POST["pfhub_portfolio_grid_id"] ) ) {
if( !isset( $_REQUEST['nonce'] ) || !wp_verify_nonce( $_REQUEST['nonce'], 'pfhub_portfolio_add_shortecode_nonce' ) ){
die( __( 'Authentication failed', 'pfhub_portfolio' ) );
}
$id = absint($_POST["pfhub_portfolio_grid_id"]);
$wpdb->update(
$wpdb->prefix . "pfhub_portfolio_grids",
array(
'pfhub_portfolio_show_sorting' => sanitize_text_field( $_POST["pfhub_portfolio_show_sorting"] ),
'pfhub_portfolio_show_filtering' => sanitize_text_field( $_POST["pfhub_portfolio_show_filtering"] ),
'description' => sanitize_text_field( $_POST["sl_pausetime"] ),
'param' => sanitize_text_field( $_POST["sl_changespeed"] ),
'pause_on_hover' => sanitize_text_field( $_POST["pause_on_hover"] ),
'grid_view_type' => sanitize_text_field( $_POST["portfolio_effects_list"] ),
),
array('id' => $id),
array('%s', '%s', '%s', '%s', '%s', '%s')
);
}
}
if ( $_POST['task'] == 'see_new_video' ) {
if ( ! isset( $_REQUEST['videoEditNonce'] ) || ! wp_verify_nonce( $_REQUEST['videoEditNonce'], 'see_new_video_nonce' ) ) {
die( __( 'Authentication failed', 'pfhub_portfolio' ) );
}
$video_url = sanitize_text_field( $_POST['videoUrl'] );
$video_id = GridHelper::getVideoId( $video_url );
$video_id = $video_id[0];
$video_type = GridHelper::getVideoType( $video_url );
if ( $video_type == 'youtube' ) {
$iframe_video_src = "//www.youtube.com/embed/" . $video_id . "?modestbranding=1&showinfo=0&controls=0";
} else {
$iframe_video_src = "//player.vimeo.com/video/" . $video_id . "?title=0&byline=0&portrait=0";
}
echo json_encode( $iframe_video_src );
wp_die();
}
if ( $_POST['task'] == 'add_thumb_video' ) {
if ( !isset( $_POST["portfolioItemId"] ) || !absint($_POST['portfolioItemId']) || absint( $_POST['portfolioItemId'] ) != $_POST['portfolioItemId'] ) {
wp_die('"portfolioItemId" parameter is required to be not negative integer');
}
$portfolioItemId = absint( $_POST["portfolioItemId"] );
if (!isset($_REQUEST['addThumbVideoNonce']) || !wp_verify_nonce($_REQUEST['addThumbVideoNonce'], 'add_thumb_video_nonce' . $portfolioItemId)) {
die(__('Authentication failed', 'pfhub_portfolio'));
}
$video_url = sanitize_text_field( $_POST['videoUrl'] );
$video_id = GridHelper::getVideoId( $video_url );
$video_type = $video_id[1];
$video_id = $video_id[0];
$video_type = GridHelper::getVideoType( $video_url );
if ( $video_type == 'youtube' ) {
$iframe_video_src = "//www.youtube.com/embed/" . $video_id . "?modestbranding=1&showinfo=0&controls=0";
} else {
$iframe_video_src = "//player.vimeo.com/video/" . $video_id . "?title=0&byline=0&portrait=0";
}
$image_url = GridHelper::getVideoImage($video_url);
echo json_encode( array ( 'iframe_video_src' => $iframe_video_src,'image_url' => $image_url, 'video_type' => $video_type ) );
wp_die();
}
}
}