Plugin Directory

Changeset 2026454


Ignore:
Timestamp:
02/07/2019 10:32:24 AM (7 years ago)
Author:
soft8soft
Message:

New version 2.10.0

Location:
verge3d/trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • verge3d/trunk/app.php

    r1953799 r2026454  
    185185
    186186            // process bulk request
    187             if (is_array($app))
     187            if (is_array($app)) {
    188188                foreach ($app as $a)
    189189                    if (!empty(intval($a)))
    190190                        v3d_delete_app(intval($a));
    191             else
     191            } else {
    192192                if (!empty(intval($app)))
    193193                    v3d_delete_app(intval($app));
     194            }
    194195
    195196            v3d_redirect_app_list();
  • verge3d/trunk/order.php

    r1943524 r2026454  
    44    require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
    55}
    6 
    7 // for Captcha
    8 function start_session() {
    9     if (!session_id()) {
    10         session_start();
    11     }
    12 }
    13 add_action('init', 'start_session', 1);
    14 
    156
    167function v3d_order_menu()
     
    2415
    2516    switch ($action) {
     17    case 'createform':
     18        $order = array();
     19        v3d_display_order($order, -1);
     20        break;
    2621    case 'create':
    27         $order = array(
    28             'title' => '',
    29             'content' => '',
    30             'price' => '0',
    31             'screenshot' => '',
    32             'user_name' => '',
    33             'user_email' => '',
    34             'user_tel' => '',
    35             'user_comment' => '',
    36         );
    37         v3d_display_order($order, -1);
    38         break;
    39     case 'createorder':
    40 
    41         $order = array(
    42             'title' => (!empty($_REQUEST['title'])) ?
    43                     sanitize_text_field($_REQUEST['title']) : 'Unknown Order',
    44             'content' => (!empty($_REQUEST['content'])) ?
    45                     sanitize_textarea_field($_REQUEST['content']) : '',
    46             'price' => (!empty($_REQUEST['price'])) ?
    47                     sanitize_text_field($_REQUEST['price']) : '0',
    48             'screenshot' => (!empty($_REQUEST['screenshot'])) ?
    49                     sanitize_text_field($_REQUEST['screenshot']) : '',
    50             'user_name' => (!empty($_REQUEST['user_name'])) ?
    51                     sanitize_text_field($_REQUEST['user_name']) : '',
    52             'user_email' => (!empty($_REQUEST['user_email'])) ?
    53                     sanitize_email($_REQUEST['user_email']) : '',
    54             'user_tel' => (!empty($_REQUEST['user_tel'])) ?
    55                     sanitize_text_field($_REQUEST['user_tel']) : '',
    56             'user_comment' => (!empty($_REQUEST['user_comment'])) ?
    57                     sanitize_textarea_field($_REQUEST['user_comment']) : '',
    58         );
    59 
    60         v3d_create_order($order);
     22        v3d_create_order(v3d_request_to_order());
    6123        v3d_redirect_order_list();
    6224        break;
    63     case 'edit':
     25    case 'editform':
    6426        $order_id = intval($_REQUEST['order']);
    6527
     
    6931        }
    7032
    71         $order = array(
    72             'title' => get_the_title($order_id),
    73             'content' => get_post_field('post_content', $order_id),
    74             'price' => get_post_meta($order_id, 'price', true),
    75             'screenshot' => get_post_meta($order_id, 'screenshot', true),
    76             'user_name' => get_post_meta($order_id, 'user_name', true),
    77             'user_email' => get_post_meta($order_id, 'user_email', true),
    78             'user_tel' => get_post_meta($order_id, 'user_tel', true),
    79             'user_comment' => get_post_meta($order_id, 'user_comment', true),
    80         );
    81 
     33        $order = json_decode(get_post_field('post_content', $order_id), true);
    8234        v3d_display_order($order, $order_id);
    8335
    8436        break;
    85     case 'editorder':
     37    case 'edit':
    8638        if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_REQUEST['order'])) {
    8739            $order_id = intval($_REQUEST['order']);
    8840
    8941            if (!empty($_REQUEST['title']) || !empty($_REQUEST['content'])) {
    90                 $post_arr = array(
    91                     'ID'           => $order_id,
    92                     'post_title'   => (!empty($_REQUEST['title'])) ?
    93                             sanitize_text_field($_REQUEST['title']) : '',
    94                     'post_content'   => (!empty($_REQUEST['content'])) ?
    95                             sanitize_textarea_field($_REQUEST['content']) : '',
    96                     'post_status'  => 'publish',
    97                     'post_type'    => 'v3d_order',
    98                     'meta_input'   => array(
    99                         'price' => (!empty($_REQUEST['price'])) ?
    100                                 sanitize_text_field($_REQUEST['price']) : '0',
    101                         'screenshot' => (!empty($_REQUEST['screenshot'])) ?
    102                                 sanitize_text_field($_REQUEST['screenshot']) : '',
    103                         'user_name' => (!empty($_REQUEST['user_name'])) ?
    104                                 sanitize_text_field($_REQUEST['user_name']) : '',
    105                         'user_email' => (!empty($_REQUEST['user_email'])) ?
    106                                 sanitize_email($_REQUEST['user_email']) : '',
    107                         'user_tel' => (!empty($_REQUEST['user_tel'])) ?
    108                                 sanitize_text_field($_REQUEST['user_tel']) : '',
    109                         'user_comment' => (!empty($_REQUEST['user_comment'])) ?
    110                                 sanitize_textarea_field($_REQUEST['user_comment']) : '',
    111                     ),
    112                 );
    113                 wp_update_post($post_arr);
     42                v3d_update_order($order_id, v3d_request_to_order());
    11443            }
    11544
     
    12756
    12857            // process bulk request
    129             if (is_array($order))
     58            if (is_array($order)) {
    13059                foreach ($order as $o)
    13160                    if (!empty(intval($o)))
    13261                        v3d_delete_order(intval($o));
    133             else
    134                 if (!empty(intval($order)))
     62            } else {
     63                if (!empty(intval($order))) {
    13564                    v3d_delete_order($order);
     65                }
     66            }
    13667
    13768            v3d_redirect_order_list();
     
    14576        $orderTable = new V3D_Order_List_Table();
    14677        $orderTable->prepare_items();
    147        
     78
    14879        ?>
    14980        <div class="wrap">
     
    15182
    15283          <h1 class='wp-heading-inline'>E-Commerce Orders</h1>
    153           <a href="?page=verge3d_order&action=create" class="page-title-action">Add New</a>
     84          <a href="?page=verge3d_order&action=createform" class="page-title-action">Add New</a>
    15485
    15586          <div class="v3d-hint">
     
    173104function v3d_create_order($order) {
    174105    $post_arr = array(
    175         'post_title'   => $order['title'],
    176         'post_content'   => $order['content'],
     106        'post_title'   => '',
     107        'post_content' => json_encode($order, JSON_UNESCAPED_UNICODE),
    177108        'post_status'  => 'publish',
    178         'post_type'    => 'v3d_order',
    179         'meta_input'   => array(
    180             'price' => $order['price'],
    181             'screenshot' => $order['screenshot'],
    182             'user_name' => $order['user_name'],
    183             'user_email' => $order['user_email'],
    184             'user_tel' => $order['user_tel'],
    185             'user_comment' => $order['user_comment'],
    186         ),
     109        'post_type'    => 'v3d_order'
    187110    );
    188111    wp_insert_post($post_arr);
    189 
    190112   
    191113    $order_email = get_option('v3d_order_email');
     
    224146}
    225147
     148function v3d_update_order($order_id, $order) {
     149    $post_arr = array(
     150        'ID'           => $order_id,
     151        'post_title'   => '',
     152        'post_content' => json_encode($order, JSON_UNESCAPED_UNICODE),
     153        'post_status'  => 'publish',
     154        'post_type'    => 'v3d_order'
     155    );
     156
     157    wp_update_post($post_arr);
     158}
     159
     160function v3d_request_to_order() {
     161    $order = array();
     162
     163    $IGNORED_KEYS = ['page', 'action', 'order'];
     164
     165    foreach ($_POST as $key => $value) {
     166        if (in_array($key, $IGNORED_KEYS, true))
     167            continue;
     168
     169        // allow multi-dimensional keys, separated by ":"
     170        $keys = strpos($key, ':') !== false ? explode(':', $key) : array($key);
     171
     172        $ptr = &$order;
     173
     174        foreach ($keys as $k) {
     175            if (!isset($ptr[$k])) {
     176                $ptr[$k] = array();
     177            }
     178            $ptr = &$ptr[$k];
     179        }
     180        if (empty($ptr)) {
     181            $ptr = $value;
     182        } else {
     183            $ptr[] = $value;
     184        }
     185    }
     186
     187    return $order;
     188}
     189
    226190function v3d_display_order($order, $order_id) {
    227     $title = $order['title'];
    228     $content = $order['content'];
    229     $price = $order['price'];
    230     $screenshot = $order['screenshot'];
    231     $user_name = $order['user_name'];
    232     $user_email = $order['user_email'];
    233     $user_tel = $order['user_tel'];
    234     $user_comment = $order['user_comment'];
    235 
    236     ?>
    237     <div class="wrap">
    238       <h1 class="wp-heading-inline"><?php echo $order_id > -1 ? 'Update Order' : 'Create Order' ?></h1>
    239       <form method="post" id="updateorderform">
    240         <input type="hidden" name="page" value="<?php echo sanitize_text_field($_REQUEST['page']) ?>" />
    241         <input type="hidden" name="action" value="<?php echo $order_id > -1 ? 'editorder' : 'createorder' ?>" />
    242         <input type="hidden" name="order" value="<?php echo $order_id ?>" />
    243         <table class="form-table">
    244           <tbody>
    245             <tr class="form-field form-required">
    246               <th scope="row">
    247                 <label for="title">Title <span class="description">(required)</span></label>
    248               </th>
    249               <td>
    250                 <input type="text" name="title" id="title" value="<?php echo $title ?>" required="true" autocapitalize="none" autocorrect="off" maxlength="200">
    251               </td>
    252             </tr>
    253             <tr class="form-field form-required">
    254               <th scope="row">
    255                 <label for="content">Content <span class="description">(required)</span></label>
    256               </th>
    257               <td>
    258                 <input type="text" name="content" id="content" value="<?php echo $content ?>" required="true" autocapitalize="none" autocorrect="off" maxlength="200">
    259               </td>
    260             </tr>
    261             <tr class="form-field form-required">
    262               <th scope="row">
    263                 <label for="price">Total Price <span class="description">(required)</span></label>
    264               </th>
    265               <td>
    266                 <input type="text" name="price" id="price" value="<?php echo $price ?>" required="true" >
    267               </td>
    268             </tr>
    269             <tr class="form-field form-required">
    270               <th scope="row">
    271                 <label for="user_name">Customer Name <span class="description">(required)</span></label>
    272               </th>
    273               <td>
    274                 <input type="text" name="user_name" id="user_name" value="<?php echo $user_name ?>" required="true" >
    275               </td>
    276             </tr>
    277             <tr class="form-field form-required">
    278               <th scope="row">
    279                 <label for="user_email">Customer E-Mail <span class="description">(required)</span></label>
    280               </th>
    281               <td>
    282                 <input type="email" name="user_email" id="user_email" value="<?php echo $user_email ?>" required="true" >
    283               </td>
    284             </tr>
    285             <tr class="form-field form-required">
    286               <th scope="row">
    287                 <label for="user_tel">Customer Phone <span class="description">(required)</span></label>
    288               </th>
    289               <td>
    290                 <input type="tel" name="user_tel" id="user_tel" value="<?php echo $user_tel ?>" required="true" >
    291               </td>
    292             </tr>
    293             <tr class="form-field">
    294               <th scope="row">
    295                 <label for="user_comment">Comments</label>
    296               </th>
    297               <td>
    298                 <input type="tel" name="user_comment" id="user_comment" value="<?php echo $user_comment ?>">
    299               </td>
    300             </tr>
    301             <tr class="form-field">
    302               <th scope="row">
    303                 <label for="screenshot">Screenshot</label>
    304               </th>
    305               <td>
    306                 <img src="<?php echo $screenshot ?>" id="screenshot" class="v3d-admin-screenshot">
    307               </td>
    308             </tr>
    309           </tbody>
    310         </table>
    311         <p class="submit"><input type="submit" class="button button-primary"></p>
    312       </form>
    313     </div>
    314     <?php
     191    include v3d_get_template('order_admin_form.php');
    315192}
    316193
     
    345222    function column_default($item, $column_name){
    346223        switch ($column_name) {
    347         case 'content':
    348224        case 'price':
    349225        case 'user_name':
    350226        case 'user_email':
    351         case 'user_tel':
     227        case 'user_phone':
    352228        case 'date':
    353229            return $item[$column_name];
    354230        default:
    355             return print_r($item, true); //Show the whole array for troubleshooting purposes
     231            return print_r($item, true); // show the whole array for troubleshooting purposes
    356232        }
    357233    }
     
    362238        $actions = array(
    363239            'edit'      => sprintf('<a href="?page=%s&action=%s&order=%s">Edit</a>',
    364                     sanitize_text_field($_REQUEST['page']), 'edit', $item['ID']),
     240                    sanitize_text_field($_REQUEST['page']), 'editform', $item['ID']),
    365241            'delete'    => sprintf('<a href="?page=%s&action=%s&order=%s">Delete</a>',
    366242                    sanitize_text_field($_REQUEST['page']), 'delete', $item['ID']),
     
    386262            'cb'      => '<input type="checkbox" />', //Render a checkbox instead of text
    387263            'title'   => 'Title',
    388             'content' => 'Content',
    389264            'price'   => 'Total Price',
    390265            'user_name'   => 'Customer',
    391266            'user_email'   => 'Customer Email',
    392             'user_tel'   => 'Phone Number',
     267            'user_phone'   => 'Phone Number',
    393268            'date'    => 'Date',
    394269        );
     
    402277            'user_name'  => array('user_name', false),
    403278            'user_email' => array('user_email', false),
    404             'user_tel'   => array('user_tel', false),
     279            'user_phone' => array('user_phone', false),
    405280            'date'       => array('date', false),
    406281        );
     
    464339
    465340        foreach ($q_posts as $q_post) {
    466             $email = get_post_meta($q_post->ID, 'user_email', true);
     341
     342            $content = json_decode($q_post->post_content, true);
    467343
    468344            $posts[] = array(
    469345                'ID'     => $q_post->ID,
    470                 'title'  => $q_post->post_title,
    471                 'content'  => $q_post->post_content,
    472                 'price' => get_post_meta($q_post->ID, 'price', true),
    473                 'user_name' => get_post_meta($q_post->ID, 'user_name', true),
    474                 'user_email' => '<a href="mailto:'.$email.'">'.$email.'</a>',
    475                 'user_tel' => get_post_meta($q_post->ID, 'user_tel', true),
     346                'title'  => (!empty($content['title'])) ? $content['title'] : 'N/A',
     347                'price'  => (!empty($content['price'])) ? $content['price'] : 'N/A',
     348                'user_name'  => (!empty($content['user_name'])) ? $content['user_name'] : 'N/A',
     349                'user_email'  => (!empty($content['user_email'])) ? $content['user_email'] : 'N/A',
     350                'user_phone'  => (!empty($content['user_phone'])) ? $content['user_phone'] : 'N/A',
    476351                'date'   => $q_post->post_date,
    477352            );
     
    508383    $screenshot = '';
    509384    if (!empty($_REQUEST['v3d_screenshot'])) {
    510         $screenshot = sanitize_text_field($_REQUEST['v3d_screenshot']);
    511 
    512385        if ($action != 'submit') {
    513             $screenshot = str_replace('data:image/png;base64,', '', $screenshot);
    514             $screenshot = str_replace(' ', '+', $screenshot);
    515 
    516             $upload_dir = v3d_get_upload_dir();
    517             $screenshot_dir = $upload_dir.'screenshots/';
    518             if (!is_dir($screenshot_dir)) {
    519                 mkdir($screenshot_dir, 0777, true);
    520             }
    521 
    522             $data = base64_decode($screenshot);
    523             $file = $screenshot_dir.time().'.png';
    524             $success = file_put_contents($file, $data);
    525             if ($success)
    526                 $screenshot = v3d_get_upload_url().'screenshots/'.basename($file);
     386            $screenshot = v3d_save_screenshot(sanitize_text_field($_REQUEST['v3d_screenshot']));
     387        } else {
     388            $screenshot = sanitize_text_field($_REQUEST['v3d_screenshot']);
    527389        }
    528390    }
     
    530392    $user_name = (!empty($_REQUEST['v3d_user_name'])) ? sanitize_text_field($_REQUEST['v3d_user_name']) : '';
    531393    $user_email = (!empty($_REQUEST['v3d_user_email'])) ? sanitize_email($_REQUEST['v3d_user_email']) : '';
    532     $user_tel = (!empty($_REQUEST['v3d_user_tel'])) ? sanitize_text_field($_REQUEST['v3d_user_tel']) : '';
     394    $user_phone = (!empty($_REQUEST['v3d_user_phone'])) ? sanitize_text_field($_REQUEST['v3d_user_phone']) : '';
    533395    $user_comment = (!empty($_REQUEST['v3d_user_comment'])) ? sanitize_textarea_field($_REQUEST['v3d_user_comment']) : '';
    534396
    535397    if ($action == 'submit') {
    536         if ($_SESSION['captcha_string'] == sanitize_text_field($_REQUEST["v3d_captcha"])) {
    537             v3d_create_order(array(
    538                 'title' => $title,
    539                 'content' => $content,
    540                 'price' => $price,
    541                 'screenshot' => $screenshot,
    542                 'user_name' => $user_name,
    543                 'user_email' => $user_email,
    544                 'user_tel' => $user_tel,
    545                 'user_comment' => $user_comment,
    546             ));
    547             ob_start();
    548             include v3d_get_template('order_success.php');
    549             return ob_get_clean();
    550         } else {
    551             ob_start();
    552             include v3d_get_template('order_failed.php');
    553             return ob_get_clean();
    554         }
     398        v3d_create_order(array(
     399            'title' => $title,
     400            'content' => $content,
     401            'price' => $price,
     402            'screenshot' => $screenshot,
     403            'user_name' => $user_name,
     404            'user_email' => $user_email,
     405            'user_phone' => $user_phone,
     406            'user_comment' => $user_comment,
     407        ));
     408        ob_start();
     409        include v3d_get_template('order_success.php');
     410        return ob_get_clean();
    555411    } else {
    556         $_SESSION['count'] = time();
    557         v3d_create_captcha();
    558         $captcha_url = v3d_get_upload_url().'captcha/'.$_SESSION['count'].'.png';
    559 
    560412        ob_start();
    561413        include v3d_get_template('order_form.php');
    562414        return ob_get_clean();
    563415    }
     416}
     417
     418function v3d_save_screenshot($data_url) {
     419
     420    $data_url = str_replace('data:image/png;base64,', '', $data_url);
     421    $data_url = str_replace(' ', '+', $data_url);
     422
     423    $upload_dir = v3d_get_upload_dir();
     424    $screenshot_dir = $upload_dir.'screenshots/';
     425    if (!is_dir($screenshot_dir)) {
     426        mkdir($screenshot_dir, 0777, true);
     427    }
     428
     429    $data = base64_decode($data_url);
     430    $file = $screenshot_dir.time().'.png';
     431    $success = file_put_contents($file, $data);
     432    if ($success)
     433        return v3d_get_upload_url().'screenshots/'.basename($file);
     434    else
     435        return '';
    564436}
    565437 
     
    578450}
    579451
    580 function v3d_create_captcha()
    581 {
    582     global $image;
    583     $image = imagecreatetruecolor(150, 40) or die("Cannot Initialize new GD image stream");
    584     $background_color = imagecolorallocate($image, 255, 255, 255);
    585     $text_color = imagecolorallocate($image, 0, 255, 255);
    586     $line_color = imagecolorallocate($image, 64, 64, 64);
    587     $pixel_color = imagecolorallocate($image, 128, 128, 255);
    588     imagefilledrectangle($image, 0, 0, 150, 40, $background_color);
    589     //for ($i = 0; $i < 3; $i++) {
    590     //    imageline($image, 0, rand() % 40, 150, rand() % 40, $line_color);
    591     //}
    592     for ($i = 0; $i < 500; $i++) {
    593         imagesetpixel($image, rand() % 150, rand() % 40, $pixel_color);
    594     }
    595     $letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    596     $len = strlen($letters);
    597     $letter = $letters[rand(0, $len - 1)];
    598     $text_color = imagecolorallocate($image, 0, 0, 0);
    599     $word = "";
    600     for ($i = 0; $i < 6; $i++) {
    601         $letter = $letters[rand(0, $len - 1)];
    602         imagestring($image, 5, 20 + ($i * 20), 12, $letter, $text_color);
    603         $word .= $letter;
    604     }
    605     $_SESSION['captcha_string'] = $word;
    606 
    607     $upload_dir = v3d_get_upload_dir();
    608     $captcha_dir = $upload_dir.'captcha/';
    609 
    610     if (!is_dir($captcha_dir)) {
    611         mkdir($captcha_dir, 0777, true);
    612     }
    613 
    614     $images = glob($captcha_dir.'*.png');
    615 
    616     foreach ($images as $image_to_delete) {
    617         @unlink($image_to_delete);
    618     }
    619     imagepng($image, $captcha_dir . $_SESSION['count'] . ".png");
    620 }
    621 
     452
     453function v3d_api_place_order(WP_REST_Request $request) {
     454 
     455    $params = $request->get_json_params();
     456
     457    if (!empty($params)) {
     458
     459        if (!empty($params['screenshot']))
     460            $params['screenshot'] = v3d_save_screenshot($params['screenshot']);
     461
     462        v3d_create_order($params);
     463
     464        $response = new WP_REST_Response(
     465            array(
     466                'order' => 'ok',
     467            )
     468        );
     469    } else {
     470
     471        $response = new WP_Error('wrong_order_params', 'Wrong order params', array('status' => 400));
     472
     473    }
     474
     475    $response->header('Access-Control-Allow-Origin', '*');
     476    return $response;
     477
     478}
     479
     480add_action('rest_api_init', function () {
     481    register_rest_route('verge3d/v1', '/place_order', array(
     482        'methods' => 'POST',
     483        'callback' => 'v3d_api_place_order',
     484    ));
     485});
  • verge3d/trunk/readme.txt

    r1953799 r2026454  
    55Tested up to: 4.9.5
    66Requires PHP: 5.6
    7 Stable tag: 2.8.0
     7Stable tag: 2.10.0
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    3333== Changelog ==
    3434
     35= 2.10 =
     36* Support for JSON API and customized order templates.
     37
    3538= 2.8 =
    3639* Fixed issue in applications with multiple HTML files
  • verge3d/trunk/templates/order_email_body.php

    r1943524 r2026454  
    3535          </th>
    3636          <td>
    37             <?php echo $order['content'] ?>
     37            <?php echo esc_html($order['content']) ?>
    3838          </td>
    3939        </tr>
     
    4343          </th>
    4444          <td>
    45             <?php echo $order['price'] ?>
     45            <?php echo esc_html($order['price']) ?>
    4646          </td>
    4747        </tr>
     
    5151          </th>
    5252          <td>
    53             <?php echo $order['user_email'] ?>
     53            <?php echo esc_html($order['user_email']) ?>
    5454          </td>
    5555        </tr>
     
    5959          </th>
    6060          <td>
    61             <?php echo $order['user_tel'] ?>
     61            <?php echo esc_html($order['user_phone']) ?>
    6262          </td>
    6363        </tr>
     
    6767          </th>
    6868          <td>
    69             <?php echo $order['user_comment'] ?>
     69            <?php echo esc_html($order['user_comment']) ?>
    7070          </td>
    7171        </tr>
  • verge3d/trunk/templates/order_failed.php

    r1943524 r2026454  
    11<div class="v3d-order-form">
    2   Wrong order parameters or incorrect captcha. Please come back and try again.
     2  Wrong order parameters. Please come back and try again.
    33</div>
  • verge3d/trunk/templates/order_form.php

    r1943524 r2026454  
    4444          </th>
    4545          <td>
    46             <textarea name="textarea" readonly><?php echo $content ?></textarea>
     46            <textarea name="textarea" readonly><?php echo esc_html($content) ?></textarea>
    4747          </td>
    4848        </tr>
     
    5252          </th>
    5353          <td>
    54             <input type="text" name="v3d_price" id="v3d_price" value="<?php echo $price ?>" required="true" readonly>
     54            <input type="text" name="v3d_price" id="v3d_price" value="<?php echo esc_html($price) ?>" required="true" readonly>
    5555          </td>
    5656        </tr>
     
    7373        <tr class="form-field form-required">
    7474          <th scope="row">
    75             <label for="v3d_user_tel">Your Phone <span class="v3d-asterix">*</span></label>
     75            <label for="v3d_user_phone">Your Phone <span class="v3d-asterix">*</span></label>
    7676          </th>
    7777          <td>
    78             <input type="tel" name="v3d_user_tel" id="v3d_user_tel" value="" required="true" >
     78            <input type="tel" name="v3d_user_phone" id="v3d_user_phone" value="" required="true" >
    7979          </td>
    8080        </tr>
     
    9595          </td>
    9696        </tr>
    97         <tr class="form-field form-required">
    98           <th scope="row">
    99             <img src="<?php echo $captcha_url ?>" style="min-width:150px; vertical-align:top;">
    100           </th>
    101           <td>
    102             <input type="text" name="v3d_captcha" id="v3d_captcha" value="" required="true" >
    103           </td>
    104         </tr>
    10597      </tbody>
    10698    </table>
  • verge3d/trunk/verge3d.php

    r1953799 r2026454  
    44Plugin URI: https://www.soft8soft.com/verge3d
    55Description: Verge3D is the most artist-friendly toolkit for creating interactive web-based experiences. It can be used to create product configurators, 3D presentations, online stores, e-learning apps, 3D portfolios, browser games and more.
    6 Version: 2.8.0
     6Version: 2.10.0
    77Author: Soft8Soft LLC
    88Author URI: https://www.soft8soft.com
     
    267267
    268268function v3d_get_template($name) {
    269     return plugin_dir_path(__FILE__).'templates/'.$name;
    270 }
    271 
     269
     270    $v3d_theme_dir = get_stylesheet_directory().'/verge3d/';
     271
     272    if (is_file($v3d_theme_dir.$name))
     273        return $v3d_theme_dir.$name;
     274    else
     275        return plugin_dir_path(__FILE__).'templates/'.$name;
     276}
     277
Note: See TracChangeset for help on using the changeset viewer.