PHP Checkbox welche angekreuzt werden MUSS!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Checkbox welche angekreuzt werden MUSS!

    Hallo liebe Forenmember,

    ich bin gerade dabei eine Homepage mit einem Onlineshop (Wordpress zusammen mit Woocommerce) zu erstellen und stoße auf folgendes Problem:
    Ich habe am Ende der Bestellung eine Checkbox mit der AGB Bestätigung, unter diese AGB Bestätigung hätte ich gern ein Feld welches noch abfragt ob der Kunde damit einverstanden ist das die Steuern für das Ausland nicht direkt richtig beim Bestellwert angegeben sind da es ein paar Länder gibt wo das anders gehandhabt wird, am schönsten wäre natürlich wenn die Checkbox nur für das Ausland angezeigt wird das wäre aber ein wenig hochgegriffen denke ich.

    Hier mal mein Lösungsansatz

    PHP-Code:
    <div class="form-row place-order">

                <noscript><?php _e'Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.''woocommerce' ); ?><br/><input type="submit" class="button alt" name="woocommerce_checkout_update_totals" value="<?php _e'Update totals''woocommerce' ); ?>" /></noscript>

                <?php $woocommerce->nonce_field('process_checkout')?>

                <?php do_action'woocommerce_review_order_before_submit' ); ?>

                <input type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="<?php echo apply_filters('woocommerce_order_button_text'__'Place order''woocommerce' )); ?>" />

                <?php if (woocommerce_get_page_id('terms')>0) : ?>
                <p class="form-row terms">
                    <label for="terms" class="checkbox"><?php _e'I have read and accept the''woocommerce' ); ?> <a href="<?php echo esc_urlget_permalink(woocommerce_get_page_id('terms')) ); ?>" target="_blank"><?php _e'terms &amp; conditions''woocommerce' ); ?></a></label>
                    <input type="checkbox" class="input-checkbox" name="terms" <?php checked( isset( $_POST['terms'] ), true ); ?> id="terms" />
                </p>
                <?php endif; ?>
                    
                <?php do_action'woocommerce_review_order_after_submit' ); ?>

            <div class="form-row place-order">

                <noscript><?php _e'Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.''woocommerce' ); ?><br/><input type="submit" class="button alt" name="woocommerce_checkout_update_totals" value="<?php _e'Update totals''woocommerce' ); ?>" /></noscript>

                <?php $woocommerce->nonce_field('process_checkout')?>

                <?php do_action'woocommerce_review_order_before_submit' ); ?>


                <?php if (woocommerce_get_page_id('terms')>0) : ?>
                <p class="form-row terms">
                    <label for="InternationalVAT" class="checkbox"><?php _e'I have read and accept that for International Customers the VAT will be calculated in theyre Countrys.''woocommerce' ); ?></a></label>
                    <input type="checkbox" class="input-checkbox" name="InternationalVAT" <?php checked( isset( $_POST['InternationalVAT'] ), true ); ?> id="InternationalVAT" />
                </p>
                <?php endif; ?>
                    
                <?php do_action'woocommerce_review_order_after_submit' ); ?>

            </div>

            <div class="clear"></div>

        </div>

    </div>
    habe mir den Teil mit der Checkbox für die AGB's gesucht, kopiert und abgeändert, die Checkbox erscheint direkt unterhalb, allerdings ein wenig verschoben und die Bestellung geht auch ohn den Haken weiter....

    Hoffe jemand kann mir da helfen ..

  • #2
    kenn das woocommerce zwar nicht und ist jetzt schwer sich da von außen mit deinem code reinzudenken, aber evtl. folgender Denkanstoss:

    Wüde evtl. versuche das zur Not mit Jquery abzufragen, wobei das im Bestellvorgang eigentlich eher schlecht ist, wobei wenn JS deaktivert ist bei nutzer geht es halt einfach ohne Prüfung durch:

    HTML-Code:
    $(document).ready(function(){
    
    // oder direkt beim absende button prüfen mit $('#id-des-absende-buttons').click(function() {
    $('#id-deines-formulars).submit(function() {
    
    if($('input[name=InternationalVAT]').attr('checked')) return true;
    else return false;
    
    
    })
    PHP-Code:

    <?php if (woocommerce_get_page_id('terms')>0) : ?>
                <p class="form-row terms">
                    <label for="InternationalVAT" class="checkbox"><?php _e'I have read and accept that for International Customers the VAT will be calculated in theyre Countrys.''woocommerce' ); ?></a></label>
                    <input type="checkbox" class="input-checkbox" name="InternationalVAT" <?php checked( isset( $_POST['InternationalVAT'] ), true ); ?> id="InternationalVAT" />
                </p>
                <?php endif; ?>

    Kommentar


    • #3
      denke der Ansatz ist gut, ich teste das mal, eventuell wurde auch einfach die abfrage ob der haken gesetzt ist in einer anderen datei versteckt und deshalb war ich verwirrt, danke aber schonmal für die hilfe!

      Kommentar


      • #4
        Zitat von RaZe0815 Beitrag anzeigen
        denke der Ansatz ist gut, ich teste das mal, eventuell wurde auch einfach die abfrage ob der haken gesetzt,
        ist in einer anderen datei versteckt und deshalb war ich verwirrt, danke aber schonmal für die hilfe!
        Hi RaZe0815,

        der Haken bei Checkboxen ist der, dass Checkboxen ohne Haken nicht gesendet werden.

        Du musst also abfragen, ob die Checkbox gesendet wurde (if(isset($_POST['Name_der_Checkbox'])) { . . . usw.).

        Oder du könntest den Submit-Button "disabled" darstellen und bei Click in die Checkbox mittels einer Funktion abfragen,
        ob checked true oder false ist, und den Submit-Button dann "freischalten" oder nicht.
        Code:
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <title>Untitled</title>
        <script type="text/javascript">
        <!--
        function send_ok(){
         if(document.bestellform.ok_agb.checked  == true){
          document.bestellform.cmd.disabled = false;
           }else{
         document.bestellform.cmd.disabled = true;
         }
        }
        // -->
        </script>
        </head>
        <body>
        <form action="" method="post" name="bestellform">
        <p>Einverstanden mit den AGBs <input type="checkbox" name="ok_agb" onclick="send_ok()"></p>
        <input type="submit" name="cmd" disabled="true">
        </form>
        </body>
        </html>
        Gruß
        Günni
        Zuletzt geändert von Guenni61; 25.04.2013, 21:36.

        Kommentar

        Lädt...
        X