Morten Forsker
25. august 2019 - 12:34 Der er 4 kommentarer

Php function og Ajax

Hej Jeg har et spørgsmål omkring php functions når man har lavet i en seprat file til det, og prøver på at kalde på det efter sideskift med ajax.
Min kode her lige til at starte med:
Mit kald:
jQuery(document).on('click', 'a.next.page-numbers, a.prev.page-numbers, a.page-numbers', function () {
jQuery.ajax({
            url: '../../wp-content/themes/storefront-child/variation_product_site.php',
           
            beforeSend: function () {
                jQuery('.loader').addClass('load');
                jQuery('html').fadeTo( 'slow', 0.4 );
                window.scrollTo(0, 0);
            },
            timeout: 100,
   
            complete: function () {
                location.reload();  <--- ((har prøvet uden den function))
            },
            success: function () {
            }
   
        });
});

Det jeg prøver at få kontakt med:
require_once('functions.php');
require('../../../wp-load.php');
add_filter('woocommerce_after_shop_loop_item', 'woocommerce_extra_variation', 40);

Er dette overhovedet muligt eller?

Det jeg forsøger på er at lave sådan at når jeg har skiftet side til feks. page2 Skal den komme frem med min function så den bliver synlig.

Det er et guick køb der skal komme frem det virker fint, men ikke når jeg prøver at kalde på det på denne måde.
Da siden til næste side vil tage for langtid for at loade den færdig. Hvis den skal have mine variationer med fra start når siden loades.

Med venlig hilsen
Morten
Peter Kruse Mester
27. august 2019 - 13:49 #1
Hej.

Efter en hurtigt søgning af dit problem, fandt jeg dette, synes den minder om dit problem :D

https://stackoverflow.com/questions/20572601/change-php-variable-with-ajax
Morten Forsker
27. august 2019 - 22:21 #2
Hej Peter

Tak for du så på det. jeg er igang med at lave en ny php file der loades med jQuery.load('');
Og det virker, men desværre har jeg problemer med at få woocommerce funktioner med i filen så filen kan bruges.
Kan simpelhen ikke finde løsningen nogle steder...
Peter Kruse Mester
28. august 2019 - 08:27 #3
Hej Morten. Har du mulighed for at sende den nye kode, så kigger jeg med glæde på det igen. Skal lige være med, du vil kalde en woocommerce funktion i et andet php fil, dit woocommerce og dit php script er to forskellige php filer rigth?

Håber du forstår hvad jeg mener.


// Peter Kruse

- Software developer - penguware.xyz
- Web developer - sickness.dk
Morten Forsker
28. august 2019 - 10:34 #4
Hej Peter

Super jo det er rigtigt det er i en anden file, det er for at loade den som det sidste på siden for at gøre loadingen hurtigere så ide kommer hurtigere frem i et side skift Her er alt kode jQuery, php function og seperrat fil.

jQuery:
jQuery( document ).ready(function() {
    jQuery('div#result').load('http://localhost/(Ses ikke her)/wp-content/themes/storefront-child/woocommerce/variation_product_site.php');
});

functions.php i child theme:
function add_woocommerce_file() {
echo '<div id="result"></div>';
}
add_filter('woocommerce_after_shop_loop_item', 'add_woocommerce_file', 60);

Den file jeg forsøger at få til at virke:
<?php

global $product, $post;
    $variations = $product->get_available_variations();
   
    if( $product->is_type( 'simple' ) ) {
       
    }
?>
<form class="cart variation" action="" method="post" enctype='multipart/form-data'>
    <div class="popup">
            <div class="popup-content">
                <div class="close-content-container">X</div>
            <?php the_content(); ?>
                </div>
            </div>
    <?php

    $output = '
    <select name="variation_id" id="variation_id">
    <option value="">Vælg...</option>';

    foreach( $variations as $variation ){
        if($variation['max_qty'] > 0) {//Finder ud af om der er vare på lager det den kalde variation.
        $option_value = array();

        foreach( $variation['attributes'] as $attribute => $term_slug ){
            $taxonomy = str_replace( 'attribute_', '', $attribute );
            $attribute_name = get_taxonomy( $taxonomy )->labels->singular_name; // Attribute name
            $term_name = get_term_by( 'slug', $term_slug, $taxonomy )->name; // Attribute value term name

            $option_value[] =  ' ' .$term_name. ' ';
           
        }
           
        $option_value = implode( '  ::  ', $option_value );

        $output .= '
        <option class="option_value" value="'.$variation['variation_id'].'">'.$option_value.'</option>';
           
        }
    }
    $output .= '
        </select>';
?><a type="button" id="open" class="open-popup">Kort varebeskrivelse</a><?php
  echo $output;

?>
    <input type="hidden" name="variation_id" id="variation_id" value="" />
    <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
    <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $post->ID ); ?>" />
   
    <div class="tilfoej"><div class="cart_flex">Læg i kurv</div></div>

</form>
<?php

Med venlig hilsen
Morten
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Fremtiden har aldrig set mere usikker ud for Intel: Her er det, der kan redde – og dødsdømme chip-kæmpen
Computerviews: Intels nyslåede topchef Pat Gelsinger står overfor en stribe rigtig svære beslutninger. Hvis han ikke træder varsomt, vil chip-giganten sandsynligvis sygne hen.
Computerworld
Akut mangel på chip tvinger verdens største bil-producenter til at drosle ned for produktionen af biler
Flere af verdens største bil-producenter er tvunget til at drosle ned for produktionen på grund af mangel på chip, som de ikke kan få leveret.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Job & Karriere
Microsoft i kæmpe dansk satsning - åbner tre store datacentre i Danmark
Microsoft lancerer kæmpe satsning fra hovedkvarteret i Lyngby. Selskabet åbner tre store bæredygtige datacentre på Sjælland.
White paper
Gratis whitepaper: Hvad er EDI, og hvordan kan det styrke min forretning?
Overvejer du EDI, og ønsker du at undersøge, om EDI er den rette investering for din virksomhed? Har en af dine kunder eller leverandører for nyligt bedt dig om at udveksle elektroniske dokumenter (EDI)? Så hent dette whitepaper og få et overblik over, hvad EDI er, og hvilke fordele producenter og grossister som dig kan se frem til, når du investerer i EDI til din forretning.