Forum Replies Created

Viewing 15 replies - 1 through 15 (of 15 total)
  • I haven’t updated to the new Woocommerce so I’m not sure if this works anymore, sorry :/

    Thread Starter m3ndi3

    (@m3ndi3)

    Aww thanks Sean you’re awesome!!

    Stripe payment gateway would be so greatly appreciated!

    Hey I was looking forever for this too and I figured it out! What I did was changed the Add to cart button to “Purchased” if a person already bought it.

    1. Go into loop>add-to-cart.php
    2. Place

    $current_user = wp_get_current_user();
    $email = $current_user->email;
    if ( woocommerce_customer_bought_product( $email, $current_user->ID, $product->id)) : echo 'Purchased'; else :

    On top after

    global $product;

    3. Scroll to the very bottom and put

    <?php endif; ?>

    Below the other

    <?php endif; ?>

    This will replace all Add to cart buttons in the catalogs and similar products, to “Purchased”

    Next in individual product pages:

    1. Go into single-product> add-to-cart>each .php
    2. Same thing.. Place

    $current_user = wp_get_current_user();
    $email = $current_user->email;
    if ( woocommerce_customer_bought_product( $email, $current_user->ID, $product->id)) : echo 'Purchased'; else :

    On top after

    global $woocommerce, $product;

    3. Scroll to the very bottom and put

    <?php endif; ?>

    Below the other

    <?php endif; ?>

    If you need to show anything else depending on if a customer bought a specific product, then just use

    $current_user = wp_get_current_user();
    $email = $current_user->email;
    if ( woocommerce_customer_bought_product( $email, $current_user->ID, 'specific product id' ))

    Hope that helped you!!

    Thread Starter m3ndi3

    (@m3ndi3)

    Thank you for answering!
    What is supposed to happen in the function ajaxUploadOwnFile is that when a person clicks a button (id=”ownFileToUpload”) It will call the $.ajaxFileUpload which calls ownfileupload.php:

    <?php
        $uploaddir = '/wp-content/themes/toolbox/uploads/users/';
    	$fileElementName = 'ownFileToUpload';
    	if(!empty($_FILES[$fileElementName]['error']))
    	{
    		switch($_FILES[$fileElementName]['error'])
    		{
    
    			case '1':
    				$error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
    				break;
    			case '2':
    				$error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
    				break;
    			case '3':
    				$error = 'The uploaded file was only partially uploaded';
    				break;
    			case '4':
    				$error = 'No file was uploaded.';
    				break;
    
    			case '6':
    				$error = 'Missing a temporary folder';
    				break;
    			case '7':
    				$error = 'Failed to write file to disk';
    				break;
    			case '8':
    				$error = 'File upload stopped by extension';
    				break;
    			case '999':
    			default:
    				$error = 'No error code avaiable';
    		}
            echo json_encode(array('error' => $error));
            exit();
    	}elseif(empty($_FILES[$fileElementName]['tmp_name']) || $_FILES[$fileElementName]['tmp_name'] == 'none')
    	{
    	    echo json_encode(array('error' => 'No file was uploaded'));
            exit();
    	}else
    	{
    	    $path = $_FILES[$fileElementName]['name'];
            $ext = pathinfo($path, PATHINFO_EXTENSION);    
    
            $unique_name = uniqid() . '.' . $ext;
    
            $uploadfile = $uploaddir . $unique_name;        
    
            if (move_uploaded_file($_FILES[$fileElementName]['tmp_name'], $uploadfile)) {
                $size = getimagesize($uploadfile);
                //echo json_encode($_FILES[$fileElementName]['size']);
                echo json_encode(array('file_name' => $uploadfile, 'size' => $size));
            } else {
                echo json_encode(array('error' => true));
            }
    
    	}		
    
    ?>

    and ajaxfileupload.js:

    jQuery.extend({
    
            createUploadIframe: function(id, uri)
           {
                 //create frame
                    var frameId = 'jUploadFrame' + id;
                    var iframeHtml = '';
                 jQuery(iframeHtml).appendTo(document.body);
    
                    return jQuery('#' + frameId).get(0);
            },
            createUploadForm: function(id, fileElementId, data)
           {
              //create form
              var formId = 'jUploadForm' + id;
              var fileId = 'jUploadFile' + id;
              var form = jQuery('');
              if(data)
              {
                 for(var i in data)
                 {
                    jQuery('').appendTo(form);
                 }
              }
              var oldElement = jQuery('#' + fileElementId);
              var newElement = jQuery(oldElement).clone();
              jQuery(oldElement).attr('id', fileId);
              jQuery(oldElement).before(newElement);
              jQuery(oldElement).appendTo(form);
    
              //set attributes
              jQuery(form).css('position', 'absolute');
              jQuery(form).css('top', '-1200px');
              jQuery(form).css('left', '-1200px');
              jQuery(form).appendTo('body');
              return form;
            },
    
            ajaxFileUpload: function(s) {
                // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
                s = jQuery.extend({}, jQuery.ajaxSettings, s);
                var id = new Date().getTime()
              var form = jQuery.createUploadForm(id, s.fileElementId, (typeof(s.data)=='undefined'?false:s.data));
              var io = jQuery.createUploadIframe(id, s.secureuri);
              var frameId = 'jUploadFrame' + id;
              var formId = 'jUploadForm' + id;
                // Watch for a new set of requests
                if ( s.global && ! jQuery.active++ )
              {
                 jQuery.event.trigger( "ajaxStart" );
              }
                var requestDone = false;
                // Create the request object
                var xml = {}
                if ( s.global )
                    jQuery.event.trigger("ajaxSend", [xml, s]);
                // Wait for a response to come back
                var uploadCallback = function(isTimeout)
              {
                 var io = document.getElementById(frameId);
                    try
                 {
                    if(io.contentWindow)
                    {
                        xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
                            xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
    
                    }else if(io.contentDocument)
                    {
                        xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
                           xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
                    }
                    }catch(e)
                 {
                    jQuery.my_handleError(s, xml, null, e);
                 }
                    if ( xml || isTimeout == "timeout")
                 {
                        requestDone = true;
                        var status;
                        try {
                            status = isTimeout != "timeout" ? "success" : "error";
                            // Make sure that the request was successful or notmodified
                            if ( status != "error" )
                       {
                                // process the data (runs the xml through httpData regardless of callback)
                                var data = jQuery.uploadHttpData( xml, s.dataType );
                                // If a local callback was specified, fire it and pass it the data
                                if ( s.success )
                                    s.success( data, status );
    
                                // Fire the global callback
                                if( s.global )
                                    jQuery.event.trigger( "ajaxSuccess", [xml, s] );
                            } else
                                jQuery.my_handleError(s, xml, status);
                        } catch(e)
                    {
                            status = "error";
                            jQuery.my_handleError(s, xml, status, e);
                        }
    
                        // The request was completed
                        if( s.global )
                            jQuery.event.trigger( "ajaxComplete", [xml, s] );
    
                        // Handle the global AJAX counter
                        if ( s.global && ! --jQuery.active )
                            jQuery.event.trigger( "ajaxStop" );
    
                        // Process result
                        if ( s.complete )
                            s.complete(xml, status);
    
                        jQuery(io).unbind()
    
                        setTimeout(function()
                                   {   try
                                      {
                                         jQuery(io).remove();
                                         jQuery(form).remove();   
    
                                      } catch(e)
                                      {
                                         jQuery.my_handleError(s, xml, null, e);
                                      }                           
    
                                   }, 100)
    
                        xml = null
    
                    }
                }
                // Timeout checker
                if ( s.timeout > 0 )
              {
                    setTimeout(function(){
                        // Check to see if the request is still happening
                        if( !requestDone ) uploadCallback( "timeout" );
                    }, s.timeout);
                }
                try
              {
    
                 var form = jQuery('#' + formId);
                 jQuery(form).attr('action', s.url);
                 jQuery(form).attr('method', 'POST');
                 jQuery(form).attr('target', frameId);
                    if(form.encoding)
                 {
                    jQuery(form).attr('encoding', 'multipart/form-data');
                    }
                    else
                 {
                    jQuery(form).attr('enctype', 'multipart/form-data');
                    }
                    jQuery(form).submit();
    
                } catch(e)
              {
                    jQuery.my_handleError(s, xml, null, e);
                }
    
              jQuery('#' + frameId).load(uploadCallback   );
                return {abort: function () {}};   
    
            },
    
            uploadHttpData: function( r, type ) {
                var data = !type;
                data = type == "xml" || data ? r.responseXML : r.responseText;
                // If the type is "script", eval it in global context
                if ( type == "script" )
                    jQuery.globalEval( data );
                // Get the JavaScript object, if JSON is used.
                if ( type == "json" )
                    eval( "data = " + data );
                // evaluate scripts within html
                if ( type == "html" )
                    jQuery("").html(data).evalScripts();
                 //alert($('param', data).each(function(){alert($(this).attr('value'));}));
                return data;
            },
    
            /* jQuery 1.2 function substitution: */
            my_handleError: function( s, xhr, status, e ) {
              // If a local callback was specified, fire it
              if ( s.error ) s.error( xhr, status, e );
    
              // Fire the global callback
                        /* INCOMPATIBLE!!! Modern jQuery 1.5+ expects xhr to be an jqXHR object.
              if ( s.global )
                 jQuery.event.trigger( "ajaxError", [xhr, s, e] );
                                */
           }
        })

    If there is a way I can do this together with your plugin, I would be eternally grateful if you would help me out!

    Thread Starter m3ndi3

    (@m3ndi3)

    “I have a custom field (#ATT_{key}) that outputs a date in this format: 1386374400”

    Thread Starter m3ndi3

    (@m3ndi3)

    Yes I know this works for me too, but for the event date, not my custom field which I use the #ATT_{custom_field}

    Thread Starter m3ndi3

    (@m3ndi3)

    Yes I did, but it was giving me the date for the event and not my custom field.

    Thread Starter m3ndi3

    (@m3ndi3)

    I figured it out 😛 Here’s the code for anyone who needs the same thing:

    <?php
    /* @var $EM_Event EM_Event */
    $people = array();
    $EM_Bookings = $EM_Event->get_bookings();
    if( count($EM_Bookings->bookings) > 0 ){
    	?>
    	<ul class="event-attendees">
    	<?php
    	$guest_bookings = get_option('dbem_bookings_registration_disable');
    	$guest_booking_user = get_option('dbem_bookings_registration_user');
    	foreach( $EM_Bookings as $EM_Booking){
    		if($EM_Booking->booking_status == 1 && !in_array($EM_Booking->get_person()->ID, $people) ){
    			$people[] = $EM_Booking->get_person()->ID;
    			echo '<li>';
    			echo '<a href="[insert homeurl/author]'. $EM_Booking->get_person()->get_name().'">'.$EM_Booking->get_person()->get_name().'</a>';
    			echo '</li>';
    			echo '<li>'. $EM_Booking->booking_comment .'</li>';
    		}elseif($EM_Booking->booking_status == 1 && $guest_bookings && $EM_Booking->get_person()->ID == $guest_booking_user ){
    			echo '<li>'. $EM_Booking->get_person()->get_name() .'</li>';
    		}
    	}
    	?>
    	</ul>
    	<?php
    } ?>

    Thread Starter m3ndi3

    (@m3ndi3)

    And is it possible to output the comment they entered during booking?

    Thread Starter m3ndi3

    (@m3ndi3)

    I added the attendees list template to my single-event.php and I’m pretty confident with editing php files… What I need to know though, is what the code for the link to the user profile page is…

    echo '
    
    <li>'. $EM_Booking->get_person()->get_name() .'</li>
    ';

    This is the code I would add the <a href="">to right?

    Thread Starter m3ndi3

    (@m3ndi3)

    I kinda figured it out! To put the placeholders inside single-event.php, I just copy and pasted the placeholder template from the plugin, into my single-event.php.

    Thread Starter m3ndi3

    (@m3ndi3)

    Is there any way I can make the attendees names clickable to their profile?

    Thread Starter m3ndi3

    (@m3ndi3)

    Perfect Thank you!!!

    I’m having issues with this too! Please someone, help!

Viewing 15 replies - 1 through 15 (of 15 total)