Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα!

Θα ήθελα βοήθεια με ενα php αρχειο. Αρχικά να πω οτι δεν γνωρίζω από developing αλλά επειδή ασχολούμαι με systems administration ανέλαβα να φτιάξω μια σελίδα στο wordpress  για ενα συγγενή, οπότε θα ήθελα την υπομονή σας.

Περιληπτικά το προβλημα:

Η σελιδα εχει κάποια πεδία από τα οποία το "dates of staying" το μετέτρεψα σε "check in" και πρόσθεσα κι άλλο ενα το "check out".

Αφού προσθεσα και στο style.css μια μορφοποίηση:

form#contactform input[type='date']

πήγα μετά και εφτιαξα τα αντίστοιχα πεδία που χρειάζομαι, δηλαδη το "check in" και το "check out".

Τα πεδία δημιουργηθηκαν και οταν το πατάς βγάζει ένα ημερολόγιο για να επιλέξεις.

Όμως όταν πατάω submit τη φόρμα μου γυρνάει σφάλμα οτι δεν εχω συμπηρώσει τα πεδία, σαν να μην καταλαβαίνει οτι το πεδίο έχει καποια τιμή. Εγώ ομως έχω ορίσει input=date, όπως φαίνεται παρακάτω. Υποψιάζομαι οτι ΄ψαχνει για text αλλά δεν μπορώ να το βρω.

 

<?php
/**
 * Simple contact form template for WordPress
 *
 * Use it in a template for pages in WordPress,
 *   include it easily via get_template_part( 'contact', 'form' );
 * See the action and filter hooks for include or change output for your requirements
 *
 * @author   Frank Bueltge <[email protected]>
 * @version  04/04/2014
 *
 *
 * -----------------------------------------------------------------------------
 * Settings
 * -----------------------------------------------------------------------------
 *
 * Text domain string from theme for translation in theme language files
 *   or you use the language files inside the folder /contact-form-languages/
 *   and copy this folder include the files in your theme
 */


// form processing if the input field has been set
if ( isset( $_POST['submit'] ) && wp_verify_nonce( $_POST['contact_form_nonce'], 'form_submit' ) ) {
    
    // define markup for error messages
    $error_tag = apply_filters( 'wp-contact-form-template_error_tag', 'p' );
    
    // output form values for debugging

    
    $spam    = filter_var( trim( $_POST['spamcheck'] ), FILTER_SANITIZE_STRING);
    $from    = filter_var( trim( strip_tags( $_POST['from'] ) ), FILTER_SANITIZE_STRING);
    $email   = trim( $_POST['email'] );
    $subject = filter_var( trim( $_POST['subject'] ), FILTER_SANITIZE_STRING);
    $phone = filter_var( trim( $_POST['phone'] ), FILTER_SANITIZE_STRING);
    $dates = filter_var( trim( $_POST['dates'] ), FILTER_SANITIZE_STRING);
    $checkin = filter_var( trim( $_POST['check in'] ), FILTER_SANITIZE_STRING);
    $checkout = filter_var( trim( $_POST['check out'] ), FILTER_SANITIZE_STRING);
    //$message = filter_var( trim( $_POST['text'] ), FILTER_SANITIZE_STRING);
    // Allow html in message
    $message = wp_kses_post( $_POST['text'] );
    
    if ( isset( $_POST['cc'] ) )
        $cc = intval( $_POST['cc'] );
    else
        $cc = FALSE;
    
    // check for spam input field
    if ( ! empty( $spam ) ) {
        $spam_error = esc_html__( 'Spammer? The spam protection field needs to be empty', 'virtuti');
        $has_error  = TRUE;
    }
    
    // check sender name, string
    if ( empty( $from ) ) {
        $from_error = esc_html__( 'Please enter your name', 'virtuti');
        $has_error  = TRUE;
    }
    
    // check for mail and filter the mail
    // alternative to filter_var a regex via preg_match( $filter, $email )
    // $filter = "/^([a-z0-9äöü]+[-_\\.a-z0-9äöü]*)@[a-z0-9äöü]+([-_\.]?[a-z0-9äöü])+\.[a-z]{2,4}$/i"
    // $filter = "/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i"
    if ( empty( $email ) ) {
        $email_error = esc_html__( 'Please enter your e-mail address', 'virtuti');
        $has_error   = TRUE;
    } else if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
        $email_error = esc_html__( 'Please enter a valid e-mail address', 'virtuti');
        $has_error   = TRUE;
    }

    if ( empty( $subject ) ) {
        $subject_error = esc_html__( 'Please enter type of room', 'virtuti' );
        $has_error     = TRUE;
    }    

    if ( empty( $phone ) ) {
        $phone_error = esc_html__( 'Please enter phone number', 'virtuti' );
        $has_error     = TRUE;
    }
    

    if ( empty( $dates ) ) {
        $dates_error = esc_html__( 'Please enter dates', 'virtuti' );
        $has_error     = TRUE;
    }
    
    
    
    if ( empty( $checkin ) ) {
        $checkin_error = esc_html__( 'Please enter check in date', 'virtuti' );
        $has_error     = TRUE;
    }
    
    
    
    if ( empty( $checkout ) ) {
        $checkout_error = esc_html__( 'Please enter check out date', 'virtuti' );
        $has_error     = TRUE;
    }
    
    
    
    if ( ! isset( $has_error ) ) {
        
        // get IP
        if ( isset( $_SERVER ) ) {
            
            if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
                $ip_addr = $_SERVER['HTTP_X_FORWARDED_FOR'];
            } elseif ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) {
                $ip_addr = $_SERVER['HTTP_CLIENT_IP'];
            } else {
                $ip_addr = $_SERVER['REMOTE_ADDR'];
            }
            
        } else {
            
            if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
                $ip_addr = getenv( 'HTTP_X_FORWARDED_FOR' );
            } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
                $ip_addr = getenv( 'HTTP_CLIENT_IP' );
            } else {
                $ip_addr = getenv( 'REMOTE_ADDR' );
            }
            
        }
        $ip_addr = filter_var( $ip_addr, FILTER_VALIDATE_IP );
        
        // use mail address from WP Admin
        $email_to = get_option( 'admin_email' );
        $subject  = $subject . ' ' . __( 'via Hotel Reservation from', 'virtuti') . ' ' . $from;
        $body     = esc_html__( 'Message:', 'virtuti') . ' ' . $message . "\n\n" .
                    esc_html__( 'Name:', 'virtuti') . ' ' . $from . "\n" .
                    esc_html__( 'E-mail:', 'virtuti') . ' ' . $email . "\n" .
                    esc_html__( 'Phone:', 'virtuti') . ' ' . $phone . "\n" .
                    esc_html__( 'Dates:', 'virtuti') . ' ' . $dates . "\n" .
                    esc_html__( 'Check In:', 'virtuti') . ' ' . $checkin . "\n" .
                    esc_html__( 'Check Out:', 'virtuti') . ' ' . $checkout . "\n" .
                    esc_html__( 'IP:', 'virtuti') . ' ' . $ip_addr . "\n";
        $headers  = 'From: ' . $from . ' <' . $email . '>' . "\r\n";
        if ( $cc ) // check for cc and include sender mail to reply
            $headers .= 'Reply-To: ' . $email;
        
        // Filter hooks for enhance the mail; sorry for long strings ;)
        $email_to = apply_filters( 'wp-contact-form-template-mail_email_to', $email_to );
        $subject  = apply_filters( 'wp-contact-form-template-mail_subject', $subject );
        $body     = apply_filters( 'wp-contact-form-template-mail_body', $body );
        
        // send mail via wp mail function
        wp_mail( $email_to, $subject, $body, $headers );
        // check for cc and send to sender
        if ( $cc ) {
            wp_mail(
                $email,
                esc_html__( 'CC:', 'virtuti' ) . ' ' . $subject,
                $body,
                $headers
            );
        }
        
        // successfully mail shipping
        $email_sent = TRUE;
    }

}
do_action( 'wp-contact-form-template_form_before' ); ?>

<form id="contactform" action="<?php the_permalink(); ?>#point2" method="post">
<fieldset>
<?php do_action( 'wp-contact-form-template_form_top' );
if ( isset( $spam_error ) )
echo apply_filters( 'wp-contact-form-template_spam_message', '<' . $error_tag . ' class="alert">' . $spam_error . '</' . $error_tag . '>' );
if ( isset( $email_sent ) )
echo apply_filters( 'wp-contact-form-template_thanks_message', '<' . $error_tag . ' class="alert-notification">' . esc_html__( 'Your request has been sent. We shall respond soon.', 'virtuti' ) . '</' . $error_tag . '>' );
do_action( 'wp-contact-form-template_form_before_fields' ); ?>

<div id="fields">
<div id="fields-left">
<!--============================================-->
<div class="field">    
<label for="checkin"><span class="asterisk">*</span> <?php echo esc_html_e('Check In', 'virtuti'); ?></label>
<input type="date"  id="checkin" name="checkin" placeholder="dd-mm-yyyy" value="<?php if ( isset( $checkin ) && ! isset( $email_sent ) ) echo esc_attr( $checkin ); ?>" />
<?php
if ( isset( $checkin_error ) )
echo '<' . $error_tag . ' class="alert">' . $checkin_error . '</' . $error_tag . '>';
?>
</div><!--field-->
<div class="field">    
<label for="checkout"><span class="asterisk">*</span> <?php echo esc_html_e('Check Out', 'virtuti'); ?></label>
<input type="date"  id="checkout" name="checkout" placeholder="dd-mm-yyyy" value="<?php if ( isset( $checkout ) && ! isset( $email_sent ) ) echo esc_attr( $checkout ); ?>" />
<?php
if ( isset( $checkout_error ) )
echo '<' . $error_tag . ' class="alert">' . $checkout_error . '</' . $error_tag . '>';
?>
</div><!--field-->
<!--============================================-->
<div class="field">    
<label for="subject"><span class="asterisk">*</span> <?php echo esc_html_e('Type of room', 'virtuti'); ?></label>
<input type="text"  id="subject" name="subject" placeholder="Ex. Double room" value="<?php if ( isset( $subject ) && ! isset( $email_sent ) ) echo esc_attr( $subject ); ?>" />
<?php
if ( isset( $subject_error ) )
echo '<' . $error_tag . ' class="alert">' . $subject_error . '</' . $error_tag . '>';
?>

<div class="f-toggle">
<div class="exc-top-res">
<p><?php echo esc_html_e('View room types →', 'virtuti');?></p>
</div><!--exc-top-res-->
<div class="info-bubble">
<figure>
<div class="round2">    
<h3 class="trigger">
<a href="#">
<span class="cb"><img src="<?php print IMAGES; ?>/images/plus.png" title="" alt=""/></span>
<span class="ex"><img src="<?php print IMAGES; ?>/images/close2.png" title="" alt=""/></span>
</a>
</h3>
<div class="toggle-containerroom">
<h4><?php echo esc_html_e('Room Types', 'virtuti'); ?></h4>
<div class="lines">
<div class="line"></div>    
<div class="line"></div>    
<div class="line"></div>    
<div class="empty"></div>
</div><!--lines-->

<ul>
<?php
$args = array( 'post_type' => 'the_rooms', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo '<li>';
echo '<div class="r-types">';
echo '<h2>';
the_title();
echo '</h2>';
echo '<div class="featured-rooms">';
echo '<figure>';
the_post_thumbnail('full');
echo '</figure>';
echo '</div><!--featured-rooms-->';
echo '</div>';
echo '</li>';
endwhile;
?>
</ul>

<div class="empty"></div>
</div><!--toggle-containerroom-->
</div><!--round2-->
</figure>
</div><!--info-bubble-->
</div><!--f-toggle-->
</div><!--field-->
</div><!--fields-left-->

<!--============================================-->


<div id="fields-right">
<!--============================================-->
<div class="field">    
<label for="from"><span class="asterisk">*</span> <?php echo esc_html_e( 'Your name', 'virtuti'); ?></label>
<input type="text" id="from" name="from" value="<?php if ( isset( $from ) && ! isset( $email_sent ) ) echo esc_attr( $from ); ?>" />
<?php
if ( isset( $from_error ) )
echo '<' . $error_tag . ' class="alert">' . $from_error . '</' . $error_tag . '>';
?>
</div><!--field-->
<!--============================================-->
<div class="field">    
<label for="email"><span class="asterisk">*</span> <?php echo esc_html_e( 'Your e-mail address', 'virtuti'); ?></label>
<input type="text" id="email" name="email" value="<?php if ( isset( $email ) && ! isset( $email_sent ) ) echo esc_attr( $email ); ?>" />
<?php
if ( isset( $email_error ) )
echo '<' . $error_tag . ' class="alert">' . $email_error . '</' . $error_tag . '>';
?>
</div><!--field-->
<!--============================================-->    
<div class="field">    
<label for="phone"><span class="asterisk">*</span> <?php echo esc_html_e( 'Your phone number ', 'virtuti'); ?></label>
<input type="text" id="phone" name="phone" value="<?php if ( isset( $phone ) && ! isset( $email_sent ) ) echo esc_attr( $phone ); ?>" />
<?php
if ( isset( $phone_error ) )
echo '<' . $error_tag . ' class="alert">' . $phone_error . '</' . $error_tag . '>';
?>
</div><!--field-->
</div><!--fields-right-->
</div><!--fields-->
    
<?php do_action( 'wp-contact-form-template_form_after_fields' ); ?>

<!--============================================-->
<div class="field mess">    
<label for="text"><?php echo esc_html_e( 'Message', 'virtuti'); ?></label>
<textarea id="text" name="text" cols="20" rows="10"><?php if ( isset( $message ) && ! isset( $email_sent ) ) echo esc_textarea( $message ); ?></textarea>
</div><!--field-->

        
<div class="field" style="display: none !important;">
<label for="text"><?php echo esc_html_e( 'Spam protection', 'virtuti'); ?></label>
<input name="spamcheck" class="spamcheck" type="text" />
</div>

<div class="field">        
<input class="submit" type="submit" name="submit" value="<?php esc_html_e( 'Send request', 'virtuti'); ?>" />
</div>
<?php wp_nonce_field( 'form_submit', 'contact_form_nonce' ) ?>
<?php do_action( 'wp-contact-form-template_form' ); ?>
</fieldset>
</form>

<?php do_action( 'wp-contact-form-template_form_after' ); ?>

Το original theme και συγκεκριμένα η φορμα που μου δημιουργεί το πρόβλημα:

http://preview.themeforest.net/item/keterwp-theme-for-small-hotels-guesthouses-rooms-for-rent-and-bb/full_screen_preview/9951333

Παράθέτω και φωτό με τη δικιά μου διαμόρφωση μέχρι το σφάλμα.

Επίσης οταν έχω επιλέξει ημερομηνια το format της ειναι US mm-dd-yyyy και δεν ξέερω πως να το αλλάξω σε dd-mm-yyyy.

 

erisimo_reservation.PNG

filling.png

filled.PNG

errors.PNG

Δημοσ.

To input εχει name 'checkin', στο backend πας να το πάρεις με

filter_var( trim( $_POST['check in'] )

υπάρχει κενό ανάμεσα στο check και στο in....

  • Thanks 1
Δημοσ. (επεξεργασμένο)

Σε ευχαριστώ πολύ! Από χτες παιδεύομαι και ακρη δεν έβρισκα.

Μήπως ξέρεις και πως το format  της ημερομηνιας μπορει να  γινει dd-mm-yyyy από mm-dd--yyyy;

Φίλε σοβαρα τώρα θα σου αναψω λαμπάδα. Δεν απάνταγε κανενας σε ξενα φορουμ

Επεξ/σία από alxnt
Δημοσ. (επεξεργασμένο)

Αυτο θα μπορουσες να το βρεις πολυ ευκολα με ενα γκουγκλάρισμα.

Anyway,

$date = "31-12-2019"; // d-m-Y

$converted_date =  date("m-d-Y", strtotime($date) );

* το αναποδο που θες θα το κανεις αντιστοιχα

Επεξ/σία από kosnik
Δημοσ.

Το εχω δει αυτό και αρκετά άλλα. Αυτο που παει ομως;

Στο value του πεδιου "check in";

Το ανάποδο ειναι αυτό, σωστά;

$date = "12-31-2019"; // m-d-Y

$converted_date = date("d-m-Y", strtotime($date) );

 

Δημοσ. (επεξεργασμένο)

Από το MDN:
 

Αναφορά σε κείμενο

One thing to note is that the displayed date format differs from the actual value — the displayed date format will be chosen based on the set locale of the user's browser, whereas the date value is always formatted yyyy-mm-dd.

Συνεπώς, δε μπορείς να καθορίσεις το format, όχι natively τουλάχιστον.
Προσωπικά έχω βρει ότι βολέβει περισσότερο να χρησιμοποιήσεις ένα text input σε συνδυασμό με κάποιο javascript datepicker.

Επεξ/σία από vadou
Δημοσ.
5 ώρες πριν, vadou είπε

Από το MDN:
 

Συνεπώς, δε μπορείς να καθορίσεις το format, όχι natively τουλάχιστον.
Προσωπικά έχω βρει ότι βολέβει περισσότερο να χρησιμοποιήσεις ένα text input σε συνδυασμό με κάποιο javascript datepicker.

Αυτό το κατάλαβα χτες γιατι είχα διαβασει κατι αντίστοιχο με αυτό που λες. Οπότε γύρισα το ff στα ελληνικα και όντως η ημερομηνία έγινε "ηη-μμ-εεεε". Παρόλα αυτά, αν και αυτονόητο το αναφέρω, στο mail που έρχεται η ημερομηνία φαίνεται ως π.χ: "2019-07-25". Θα ήθελα και αυτό να έχει μορφή dd-mm-yyyy.

Με javascript datepicker  θα λύσω το πρόβλημα για την εμφάνιση και στη σελίδα αλλά και στο mail;

Δημοσ. (επεξεργασμένο)

Επειδή, μπορεί να το κατάλαβες, μπορεί και όχι, να σου εξηγήσω λίγο τι ακριβώς εννοεί.
Το display date, δηλαδή η τιμή του πεδίου που βλέπεις/βλέπει ο χρήστης εξαρτάται από το localization του browser. Όπως σωστά παρατήρησες, αλλάζοντας τη γλώσσα του browser, αυτό αλλάζει.
Το value, η πραγματική τιμή του πεδίου που αποστέλεται μέσω της φόρμας είναι ΠΑΝΤΑ της μορφής yyyy-mm-dd.

Με βάση τα παραπάνω, μπορείς να κρατήσεις το native date input και να αλλάξεις τη μορφή της ημ/νίας πριν τη στείλεις (προσωπικά θα έκανα explode-array_reverse-implode από τη στιγμή που το μόνο που θέλεις στην ουσία είναι να αντιστρέψεις τη μορφή) ή να χρησιμοποιήσεις ένα text input όπως σου έγραψα παραπάνω και με κάποιο τρόπο (πχ date picker) να ορίζεις εσύ ακριβώς την τιμή (ή καλύτερα τη μορφή της τιμής) που θα έχει το πεδίο.

Ελπίζω να σε κάλυψα.

ΥΓ.
Τώρα είδα το fiddle σου. Λογικό να μην παίζει...
To snippet που σου έγραψε ο kosnick είναι php. Το JSFiddle δεν παίζει php.
Αν το γράψεις στο σωστό σημείο στο αρχείο σου, θα παίξει μια χαρά.

Επεξ/σία από vadou
Δημοσ. (επεξεργασμένο)

Όπως αναφέρθηκε και από το φίλο παραπάνω,

1. Χρησιμοποιήσε ένα js datepicker plugin , ωστε να ελέγξεις από τα options του to format της ημερομηνιας (πως θα φαινεται στο χρήστη και  πως θα γίνεται submitted).  Το input θα ειναι type text και το plugin θα αναλάβει τα υπόλοιπα.

2. Στο submission της φορμας, κάνεις μετατροπή με php - αν χρειαζεται -  σε οποιο φορματ θες την υποβληθεισα ημερομηνια  ωστε να αποθηκευτεί στη βάση σωστά.

1 -> javascript (frontent)

2 -> php (backend)

Επεξ/σία από kosnik
Δημοσ. (επεξεργασμένο)

Έβαλα το WP Datepicker. Κάνει τη δουλεια και το μόνο που με ενοχλεί είναι οτι συμπληρώνει αυτόματα το current day. Προσπάθησα να το κάνω σε μορφή dd-mm-yyyy ή έστω να μένει κενό, αλλά δεν το βρήκα ουτε στα settings του, ούτε και στον κωδικα. Επίσης πολύ λίγες επιλογές στη ρύθμιση της ημερομηνίας μέσα στο calendar. Δεν μπορείς να επιλέξεις π.χ το έτος ανεξάρτητα. Τέλος δε μου αρέσει πολύ το calendar που χρησιμοποιεί.

Από εκει και πέρα προσπάθησα και την πιο manual επιλογή αλλά δεν τα κατάφερα.

https://www.cssscript.com/date-picker-foopicker/

Έβαλα τα 2 αρχεία css και js στους αντίστοιχους φακέλους αλλά δεν καταφερα ποτε να τα κάνω bind.

Στο readme έλεγε για "bower install foopicker". Αν κατάλαβα καλά για να γίνει αυτό πρέπει το WP να τρέχει στο localhost και όχι σε server οπως στη δικιά μου περίπτωση.

 

UPDATE: Έπαιξε!

<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/css/foopicker.css">
<script src="<?php echo get_template_directory_uri(); ?>/js/foopicker.js"></script>

<div class="field"> 
<label for="checkin"><span class="asterisk">*</span> <?php echo esc_html_e('Check In', 'virtuti'); ?></label>
<input type="text" id="checkin" name="checkin" value="<?php if ( isset( $checkin ) && ! isset( $email_sent ) ) echo esc_attr( $checkin ); ?>" placeholder="dd/MM/YYYY" />
<?php
if ( isset( $checkin_error ) )
echo '<' . $error_tag . ' class="alert">' . $checkin_error . '</' . $error_tag . '>';
?>

<script>
var foopicker = new FooPicker({
id: 'checkin',
dateFormat: 'dd/MM/yyyy'
});
</script>
</div><!--field-->

 

Επεξ/σία από alxnt
Δημοσ.

Καλησπέρα και πάλι!

Έχω αυτό το field:

<div class="field">	
<label for="subject"><span class="asterisk">*</span> <?php echo esc_html_e('Type of room', 'virtuti'); ?></label>
<input type="text"  id="subject" name="subject" placeholder="Ex. Double room" value="<?php if ( isset( $subject ) && ! isset( $email_sent ) ) echo esc_attr( $subject ); ?>" />
<?php
if ( isset( $subject_error ) )
echo '<' . $error_tag . ' class="alert">' . $subject_error . '</' . $error_tag . '>';

και θέλω να είναι drop-down list με καποιες επιλογές.

Π.χ:

<select name="room_type" id="room_type">
  <option value="">--</option>
	<option value="0" checked>double room</option>
	<option value="1">triple room</option>
	<option value="2">family room</option>
	</select>

όμως η επιλογή θα πρεπει να είναι και το "subject" στο mail που γίνεται submit.

Αυτό που δοκίμασα είναι το εξης:

<div class="field">	
<label for="subject"><span class="asterisk">*</span> <?php echo esc_html_e('Type of room', 'virtuti'); ?></label>
<select name="room_type" id="room_type">
  <option value="">--</option>
	<option value="0" checked>double room</option>
	<option value="1">triple room</option>
	<option value="2">family room</option>
	</select><?php if ( isset( $subject ) && ! isset( $email_sent ) ) echo esc_attr( $subject ); ?>
<?php
if ( isset( $subject_error ) )
echo '<' . $error_tag . ' class="alert">' . $subject_error . '</' . $error_tag . '>';
?>

Το πεδίο εμφανίζεται ΟΜΩΣ όταν επιλέγω και κάνω submit χτυπάει error "Please enter type of room", το error του subject δηλαδή.

Επιπλέον δοκίμασα να προσθέσω και

<input type="text">

αλλά έτσι προσθέτει και 2 πεδία. Το ένα αυτό που είχε στην αρχή συν το dropdown.

 

Τέλος, δοκίμασα

<div class="field">	
<label for="subject"><span class="asterisk">*</span> <?php echo esc_html_e('Type of room', 'virtuti'); ?></label>
<select name="room_type" id="room_type">
  <option value="">--</option>
	<option value="0" checked>double room</option>
	<option value="1">triple room</option>
	<option value="2">family room</option>
	</select>
	<value=<?php if ( isset( $subject ) && ! isset( $email_sent ) ) echo esc_attr( $subject ); ?> />
<?php
if ( isset( $subject_error ) )
echo '<' . $error_tag . ' class="alert">' . $subject_error . '</' . $error_tag . '>';
?>

αλλά και αυτο χτυπάει το ίδιο error.

Δημοσ.

Δεν καταλαβαίνω τι ακριβως θες να κάνεις.

Εχεις ενα input 'subject', το οποιο ειναι text, και ενα dropdown με τον τυπο δωματιου. Στο submit της φορμας θα σταλουν και τα 2, και μπορείς να τα κάνεις ότι θελεις πίσω.

Τι εννοεις λεγοντας "όμως η επιλογή θα πρεπει να είναι και το "subject" στο mail που γίνεται submit." ?

Τι ακριβώς θες να πάρεις όταν γινει submitted η φορμα?

Δημοσ.

Αυτο το πεδίο είναι ο τυπος δωματιου που εμφανίζεται στο "θεμα" του mail οταν γινεται submit.

Εγω θελω να μην ειναι text και να γινει drop down.

Ετσι οπως το εκανα εγινε drop down, αλλα οταν κανω submit μου βγαζει να συμπληρωσω το πεδιο.

drop.png

error.png

Δημοσ.

Αν απλα στελνεις ενα email και δεν αποθηκευεις κάτι στη βάση, απλά πετα το text input του subject, κράτα το Dropdown, ονομασε το select (name, id)  'subject' (δλδ αντικατέστησε το 'room_type'), βάλε σαν values στα options το κείμενο που θες για το καθένα να φαίνεται στο mail που θα στειλεις π.χ.

<option value="Double Room" checked>double room</option>

To backend προφανως δεν θα πρέπει να περιμένει τπτ σχετικό με 'room_type', σε περιπτωση που εχεις κωδικα που το περιμενει σαν required.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...