Design Meets Code

Design Meets Code

WordPress · PrestaShop

  • Startseite
  • WordPress
  • PHP / Datenbanken
  • Ubuntu
  • Prestashop
  • Verschiedenes
  • Grafik
  • Glossar

In Windows eine .htaccess erstellen

15. April 2014 Leave a Comment

htaccessWer mit Windows arbeitet und eine .htaccess Datei erstellen möchte, erhält meist eine Fehlermeldung, dass eine gültige Dateiendung eingegeben werden soll.
Dies lässt sich umgehen, indem man am Ende noch einen Punkt hinzufügt (das wird von Windows als Dateiname ohne Endung interpretiert und erlaubt).
Als Ergebnis erhält man die gewünschte .htaccess Datei

Filed Under: Allgemein Tagged With: htaccess, Windows

WordPress: Thumbnailgröße für Galerien ändern

2. April 2014 Leave a Comment

Standardmäßig wird für WordPress Galerien die in den Medieneinstellungen definierte Thumbnailgröße für die Vorschaubilder verwendet. Möchte man für Galerien größere Vorschaubilder haben ohne jedesmal den Shortcode um den Zusatz size=“medium“ zu erweitern, so kann man dies mit Hilfe einer Funktion wie folgt erreichen:

<?php 
/* Only add the code below to your functions or plugin.*/ 

//Adds gallery shortcode defaults of size="medium" and columns="2" 
function amethyst_gallery_atts( $out, $pairs, $atts ) {
   
    $atts = shortcode_atts( array(
        'columns' => '2',
        'size' => 'medium',
         ), $atts );

    $out['columns'] = $atts['columns'];
    $out['size'] = $atts['size'];

    return $out;

}
add_filter( 'shortcode_atts_gallery', 'amethyst_gallery_atts', 10, 3 );

Diese Funktion wird in die functions.php des verwendeten Themes eingetragen.

Quelle: https://amethystwebsitedesign.com/how-to-get-larger-images-in-a-wordpress-gallery/

Filed Under: Allgemein Tagged With: Galerien, Thumbnails, Vorschaubilder

AWD Shipping Plugin für WooCommerce 2.1

6. März 2014 Leave a Comment

Für die WooCommerce Version 2.X funktioniert das AWS Shipping Plugin aus dem WordPress Repository leider nicht mehr. Im Forum auf wordpress.org hat jemand das Plugin AWD Shipping Costs mit dem funktionierenden Weight Based Shipping Plugin angepasst, so dass es auch mit WooCommerce 2.1 funktioniert. Hier sind die Änderungen

<?php
/**
 * Plugin Name: Weight and Country Table Rate shipping for Woocommerce
 * Description: WCTR is a weight and country based shipping method for Woocommerce 2.1, based on <a href="http://www.andyswebdesign.ie/blog/free-woocommerce-weight-and-country-based-shipping-extension-plugin/">AWD</a> and <a href="http://wordpress.org/plugins/weight-based-shipping-for-woocommerce/">WOOWBS</a>
 * Version: 1.0
 * Author:
 */
/*  Copyright 2012  

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

add_action( 'plugins_loaded', 'init_woowctr', 0 );

function init_woowctr() {

	if ( ! class_exists( 'WC_Shipping_Method' ) ) return;

	class WCTR_Shipping extends WC_Shipping_Method {

		function __construct() {
			$this->id           = 'WCTR_Shipping';
			$this->method_title = __( 'Table Rate', 'woocommerce' );

			$this->admin_page_heading     = __( 'Weight and country based shipping', 'woocommerce' );
			$this->admin_page_description = __( 'Define shipping by weight and country', 'woocommerce' );

			add_action( 'woocommerce_update_options_shipping_' . $this->id, array( &$this, 'process_admin_options' ) );

			$this->init();
			$this->display_country_groups();
		}

		function init() {
			$this->init_form_fields();
			$this->init_settings();

			$this->enabled          = $this->get_option('enabled');
			$this->title            = $this->get_option('title');
            $this->availability     = 'specific';
			$this->country_group_no	= $this->get_option('country_group_no');
            $this->countries 	    = $this->get_option('countries');
			$this->type             = 'order';
			$this->tax_status       = $this->get_option('tax_status');
			$this->fee              = $this->get_option('fee');
			$this->rate			= isset( $this->settings['rate'] ) ? $this->settings['rate'] : '';
			$this->rate			= (array) explode( "n", $this->rate );

            if (empty($this->countries)) {
                $this->availability = $this->settings['availability'] = 'all';
            }
		}

		function init_form_fields() {

            $woocommerce = function_exists('WC') ? WC() : $GLOBALS['woocommerce'];

			$this->form_fields = array(
				'enabled'    => array(
					'title'   => __( 'Enable/Disable', 'woocommerce' ),
					'type'    => 'checkbox',
					'label'   => __( 'Enable this shipping method', 'woocommerce' ),
					'default' => 'no',
				),
				'title'      => array(
					'title'       => __( 'Method Title', 'woocommerce' ),
					'type'        => 'text',
					'description' => __( 'This controls the title which the user sees during checkout.', 'woocommerce' ),
					'default'     => __( 'Regular Shipping', 'woocommerce' ),
				),
				'tax_status' => array(
					'title'       => __( 'Tax Status', 'woocommerce' ),
					'type'        => 'select',
					'description' => '',
					'default'     => 'taxable',
					'options'     => array(
						'taxable' => __( 'Taxable', 'woocommerce' ),
						'none'    => __( 'None', 'woocommerce' ),
					),
				),
				'fee'        => array(
					'title'       => __( 'Handling Fee', 'woocommerce' ),
					'type'        => 'text',
					'description' => __( 'Fee excluding tax, e.g. 3.50. Leave blank to disable.', 'woocommerce' ),
					'default'     => '',
				),
				'rate'       => array(
					'title'       => __( 'Shipping Rates', 'woocommerce' ),
					'type'        => 'textarea',
					'description' => __( 'Set your weight based rates in ' . get_option( 'woocommerce_weight_unit' ) . ' for country groups (one per line). Example: <code>Max weight|Cost|country group number</code>. Example: <code>10|6.95|3</code>. For decimal, use a dot not a comma.', 'woocommerce' ),
					'default'     => '',
				),
				'country_group_no' => array(
					'title' 		=> __( 'Number of country groups', 'woocommerce' ),
					'type' 			=> 'text',
					'description'	=> __( 'Number of groups of countries sharing delivery rates (hit "Save changes" button after you have changed this setting).' ),
					'default' 		=> '3',
				),

			);
		}

    /*
    * Displays country group selects in shipping method's options
    */
    function display_country_groups() {

		$woocommerce = function_exists('WC') ? WC() : $GLOBALS['woocommerce'];
		$shippingCountries = method_exists($woocommerce->countries, 'get_shipping_countries')
                                    ? $woocommerce->countries->get_shipping_countries()
                                    : $woocommerce->countries->countries;
    //   echo prp($this->settings['countries1']);
        $number = $this->country_group_no;
        for($counter = 1; $number >= $counter; $counter++) {

            $this->form_fields['countries'.$counter] =  array(
                    'title'     => sprintf(__( 'Country Group %s', 'woocommerce' ), $counter),
                    'type'      => 'multiselect',
                    'class'     => 'chosen_select',
                    'css'       => 'width: 450px;',
                    'default'   => '',
                    'options'   => $shippingCountries
            );
        }
    }

		function calculate_shipping( $package = array() ) {

			global $woocommerce;

            $rates      = $this->get_rates_by_countrygroup($this->get_countrygroup($package));
            $weight     = $woocommerce->cart->cart_contents_weight;
            $final_rate = $this->pick_smallest_rate($rates, $weight);

            if($final_rate === false) return false;

            $taxable    = ($this->tax_status == 'taxable') ? true : false;

            if($this->fee > 0 && $package['destination']['country']) $final_rate = $final_rate + $this->fee;

                $rate = array(
                'id'        => $this->id,
                'label'     => $this->title,
                'cost'      => $final_rate,
                'taxes'     => '',
                'calc_tax'  => 'per_order'
                );

        $this->add_rate( $rate );
    }

    /*
    * Retrieves the number of country group for country selected by user on checkout
    */
    function get_countrygroup($package = array()) {    

            $counter = 1;

            while(is_array($this->settings['countries'.$counter])) {
                if (in_array($package['destination']['country'], $this->settings['countries'.$counter]))
                    $country_group = $counter;

                $counter++;
            }
        return $country_group;
    }

    /*
    * Retrieves all rates available for selected country group
    */
    function get_rates_by_countrygroup($country_group = null) {

        $rates = array();
                if ( sizeof( $this->rate ) > 0) foreach ( $this->rate as $option => $value ) {

                    $rate = preg_split( '~s*|s*~', trim( $value ) );

                    if ( sizeof( $rate ) !== 3 )  {
                        continue;
                    } else {
                        $rates[] = $rate;

                    }
                }

                foreach($rates as $key) {
                    if($key[2] == $country_group) {
                        $countrygroup_rate[] = $key;
                    }
                }
        return $countrygroup_rate;
    }

    /*
    * Picks the right rate from available rates based on cart weight
    */
    function pick_smallest_rate($rates,$weight) {

    if($weight == 0) return 0; // no shipping for cart without weight

        if( sizeof($rates) > 0) foreach($rates as $key => $value) {

                if($weight <= $value[0]) {
                    $postage[] = $value[1];
                }
                $postage_all_rates[] = $value[1];
        }

        if(sizeof($postage) > 0) {
            return min($postage);
                } else {
                if (sizeof($postage_all_rates) > 0) return max($postage_all_rates);
                }
        return false;
    }

		public function admin_options() {
			?>
				<h3><?php _e( 'Weight and Country based Table Rates shipping', 'woocommerce' ); ?></h3>
				<p><?php _e( 'Lets you calculate shipping based on country and weight of the cart. Lets you set unlimited weight bands on per country basis and group countries that share same delivery cost/bands.', 'woocommerce' ); ?></p>
				<table class="form-table">
					<?php $this->generate_settings_html(); ?>
				</table>
			<?php
		}
	}
}

function add_woowctr( $methods ) {
	$methods[] = 'WCTR_Shipping';
	return $methods;
}

add_filter( 'woocommerce_shipping_methods', 'add_woowctr' );

?>

und für Express Mail

<?php
/**
 * Plugin Name: Weight and Country Table Rate Express Mail for Woocommerce
 * Description: WCTR for Express Mail is a weight and country based shipping method for Woocommerce 2.1, based on <a href="http://www.andyswebdesign.ie/blog/free-woocommerce-weight-and-country-based-shipping-extension-plugin/">AWD</a> and <a href="http://wordpress.org/plugins/weight-based-shipping-for-woocommerce/">WOOWBS</a>.
 * Version: 1.0
 * Author:
 */
/*  Copyright 2012  

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

/* MODIF */ add_action( 'plugins_loaded', 'init_woowctr2', 0 );

/* MODIF */ function init_woowctr2() {

	if ( ! class_exists( 'WC_Shipping_Method' ) ) return;

/* MODIF */ 	class WCTR_Shipping2 extends WC_Shipping_Method {

		function __construct() {
/* MODIF */ 			$this->id           = 'WCTR_Shipping2';
/* MODIF */ 			$this->method_title = __( 'Table Rate for Express Mail', 'woocommerce' );

			$this->admin_page_heading     = __( 'Weight and country based shipping', 'woocommerce' );
			$this->admin_page_description = __( 'Define shipping by weight and country', 'woocommerce' );

			add_action( 'woocommerce_update_options_shipping_' . $this->id, array( &$this, 'process_admin_options' ) );

			$this->init();
			$this->display_country_groups();
		}

		function init() {
			$this->init_form_fields();
			$this->init_settings();

			$this->enabled          = $this->get_option('enabled');
			$this->title            = $this->get_option('title');
            $this->availability     = 'specific';
			$this->country_group_no	= $this->get_option('country_group_no');
            $this->countries 	    = $this->get_option('countries');
			$this->type             = 'order';
			$this->tax_status       = $this->get_option('tax_status');
			$this->fee              = $this->get_option('fee');
			$this->rate			= isset( $this->settings['rate'] ) ? $this->settings['rate'] : '';
			$this->rate			= (array) explode( "n", $this->rate );

            if (empty($this->countries)) {
                $this->availability = $this->settings['availability'] = 'all';
            }
		}

		function init_form_fields() {

            $woocommerce = function_exists('WC') ? WC() : $GLOBALS['woocommerce'];

			$this->form_fields = array(
				'enabled'    => array(
					'title'   => __( 'Enable/Disable', 'woocommerce' ),
					'type'    => 'checkbox',
					'label'   => __( 'Enable this shipping method', 'woocommerce' ),
					'default' => 'no',
				),
				'title'      => array(
					'title'       => __( 'Method Title', 'woocommerce' ),
					'type'        => 'text',
					'description' => __( 'This controls the title which the user sees during checkout.', 'woocommerce' ),
					'default'     => __( 'Express Mail', 'woocommerce' ),
				),
				'tax_status' => array(
					'title'       => __( 'Tax Status', 'woocommerce' ),
					'type'        => 'select',
					'description' => '',
					'default'     => 'taxable',
					'options'     => array(
						'taxable' => __( 'Taxable', 'woocommerce' ),
						'none'    => __( 'None', 'woocommerce' ),
					),
				),
				'fee'        => array(
					'title'       => __( 'Handling Fee', 'woocommerce' ),
					'type'        => 'text',
					'description' => __( 'Fee excluding tax, e.g. 3.50. Leave blank to disable.', 'woocommerce' ),
					'default'     => '',
				),
				'rate'       => array(
					'title'       => __( 'Shipping Rates', 'woocommerce' ),
					'type'        => 'textarea',
					'description' => __( 'Set your weight based rates in ' . get_option( 'woocommerce_weight_unit' ) . ' for country groups (one per line). Example: <code>Max weight|Cost|country group number</code>. Example: <code>10|6.95|3</code>. For decimal, use a dot not a comma.', 'woocommerce' ),
					'default'     => '',
				),
				'country_group_no' => array(
					'title' 		=> __( 'Number of country groups', 'woocommerce' ),
					'type' 			=> 'text',
					'description'	=> __( 'Number of groups of countries sharing delivery rates (hit "Save changes" button after you have changed this setting).' ),
					'default' 		=> '3',
				),

			);
		}

    /*
    * Displays country group selects in shipping method's options
    */
    function display_country_groups() {

		$woocommerce = function_exists('WC') ? WC() : $GLOBALS['woocommerce'];
		$shippingCountries = method_exists($woocommerce->countries, 'get_shipping_countries')
                                    ? $woocommerce->countries->get_shipping_countries()
                                    : $woocommerce->countries->countries;
    //   echo prp($this->settings['countries1']);
        $number = $this->country_group_no;
        for($counter = 1; $number >= $counter; $counter++) {

            $this->form_fields['countries'.$counter] =  array(
                    'title'     => sprintf(__( 'Country Group %s', 'woocommerce' ), $counter),
                    'type'      => 'multiselect',
                    'class'     => 'chosen_select',
                    'css'       => 'width: 450px;',
                    'default'   => '',
                    'options'   => $shippingCountries
            );
        }
    }

		function calculate_shipping( $package = array() ) {

			global $woocommerce;

            $rates      = $this->get_rates_by_countrygroup($this->get_countrygroup($package));
            $weight     = $woocommerce->cart->cart_contents_weight;
            $final_rate = $this->pick_smallest_rate($rates, $weight);

            if($final_rate === false) return false;

            $taxable    = ($this->tax_status == 'taxable') ? true : false;

            if($this->fee > 0 && $package['destination']['country']) $final_rate = $final_rate + $this->fee;

                $rate = array(
                'id'        => $this->id,
                'label'     => $this->title,
                'cost'      => $final_rate,
                'taxes'     => '',
                'calc_tax'  => 'per_order'
                );

        $this->add_rate( $rate );
    }

    /*
    * Retrieves the number of country group for country selected by user on checkout
    */
    function get_countrygroup($package = array()) {    

            $counter = 1;

            while(is_array($this->settings['countries'.$counter])) {
                if (in_array($package['destination']['country'], $this->settings['countries'.$counter]))
                    $country_group = $counter;

                $counter++;
            }
        return $country_group;
    }

    /*
    * Retrieves all rates available for selected country group
    */
    function get_rates_by_countrygroup($country_group = null) {

        $rates = array();
                if ( sizeof( $this->rate ) > 0) foreach ( $this->rate as $option => $value ) {

                    $rate = preg_split( '~s*|s*~', trim( $value ) );

                    if ( sizeof( $rate ) !== 3 )  {
                        continue;
                    } else {
                        $rates[] = $rate;

                    }
                }

                foreach($rates as $key) {
                    if($key[2] == $country_group) {
                        $countrygroup_rate[] = $key;
                    }
                }
        return $countrygroup_rate;
    }

    /*
    * Picks the right rate from available rates based on cart weight
    */
    function pick_smallest_rate($rates,$weight) {

    if($weight == 0) return 0; // no shipping for cart without weight

        if( sizeof($rates) > 0) foreach($rates as $key => $value) {

                if($weight <= $value[0]) {
                    $postage[] = $value[1];
                }
                $postage_all_rates[] = $value[1];
        }

        if(sizeof($postage) > 0) {
            return min($postage);
                } else {
                if (sizeof($postage_all_rates) > 0) return max($postage_all_rates);
                }
        return false;
    }

		public function admin_options() {
			?>
				<h3><?php _e( 'Weight and Country based Table Rates shipping', 'woocommerce' ); ?></h3>
				<p><?php _e( 'Lets you calculate shipping based on country and weight of the cart. Lets you set unlimited weight bands on per country basis and group countries that share same delivery cost/bands.', 'woocommerce' ); ?></p>
				<table class="form-table">
					<?php $this->generate_settings_html(); ?>
				</table>
			<?php
		}
	}
}

/* MODIF */ function add_woowctr2( $methods ) {
/* MODIF */ 	$methods[] = 'WCTR_Shipping2';
	return $methods;
}

/* MODIF */ add_filter( 'woocommerce_shipping_methods', 'add_woowctr2' );

?>

Quelle: wordpress.org

Filed Under: WordPress Tagged With: Weight Based Shipping, WooCommerce, WordPress

  • « Previous Page
  • 1
  • …
  • 33
  • 34
  • 35
  • 36
  • 37
  • …
  • 45
  • Next Page »
Anzeige

Themen

Apache BuddyPress chmod chown Code Snippets Concatenation Operator Conditional Statement Custom Post Types Datenbank Email Enfold Escape Zeichen Foren genesis Grid View htaccess JavaScript Layout Builder List View Medien MegaShop Mitgliederbereich MySQL PHP PHP Anfänger PHP Variablen Plugins Prestashop Prestashop 1.5 Prestashop 1.6 Prestashop 8 Prestashop Module Registrierung RSS Feed s2member Schreibrechte Server ssl Strings Tipps Windows Windows 10 WooCommerce WooCommerce Sortierung WordPress
Anzeige

Letzte Kommentare

  • dmc zu Woocommerce: Produktbewertungen deaktivieren
  • medienplus zu Woocommerce: Produktbewertungen deaktivieren
  • Martin zu CSS: Automatische Silbentrennung in einzelnen Wörtern verhindern
  • Martin zu CSS: Automatische Silbentrennung in einzelnen Wörtern verhindern
  • Klaus zu Woocommerce: Shop Seiten neu generieren

Informationen

  • Kontakt
  • Datenschutzerklärung
  • Impressum
  • Cookie-Richtlinie (EU)
  • Kontakt
  • Datenschutzerklärung
  • Impressum
  • Cookie-Richtlinie (EU)
Anzeige