<?php
/**
* Plugin Name: WC Variations Radio Buttons
* Plugin URI: https://wordpress.org/plugins/wc-variations-radio-buttons/
* Description: Variations Radio Buttons for WooCommerce. Let your customers choose product variations using radio buttons instead of dropdowns.
* Version: 2.0.1
* Author: 8manos
* Author URI: http://8manos.com
* License: GPLv2 or later
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
*/
//VARIATIONSTOCK
//endvariationstock
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// Check if WooCommerce is active
if ( is_plugin_active( 'woocommerce/woocommerce.php') ) {
class WC_Radio_Buttons {
// plugin version
const VERSION = '2.0.0';
private $plugin_path;
private $plugin_url;
public function __construct() {
add_filter( 'woocommerce_locate_template', array( $this, 'locate_template' ), 10, 3 );
//js scripts
add_action( 'wp_enqueue_scripts', array( $this, 'load_scripts' ), 999 );
}
public function get_plugin_path() {
if ( $this->plugin_path ) {
return $this->plugin_path;
}
return $this->plugin_path = plugin_dir_path( __FILE__ );
}
public function get_plugin_url() {
if ( $this->plugin_url ) {
return $this->plugin_url;
}
return $this->plugin_url = plugin_dir_url( __FILE__ );
}
public function locate_template( $template, $template_name, $template_path ) {
global $woocommerce;
$_template = $template;
if ( ! $template_path ) {
$template_path = $woocommerce->template_url;
}
$plugin_path = $this->get_plugin_path() . 'templates/';
// Look within passed path within the theme - this is priority
$template = locate_template( array(
$template_path . $template_name,
$template_name
) );
// Modification: Get the template from this plugin, if it exists
if ( ! $template && file_exists( $plugin_path . $template_name ) ) {
$template = $plugin_path . $template_name;
}
// Use default template
if ( ! $template ) {
$template = $_template;
}
return $template;
}
function load_scripts() {
// Don't load JS if current product type is bundle to prevent the page from not working
if (!(wc_get_product() && wc_get_product()->is_type('bundle'))) {
wp_deregister_script( 'wc-add-to-cart-variation' );
wp_register_script( 'wc-add-to-cart-variation', $this->get_plugin_url() . 'assets/js/frontend/add-to-cart-variation.js', array( 'jquery', 'wp-util' ), self::VERSION );
}
}
}
new WC_Radio_Buttons();
if ( ! function_exists( 'print_attribute_radio' ) ) {
function print_attribute_radio( $checked_value, $value, $label, $name, $term_name, $stock_data ) {
global $product;
$input_name = 'attribute_' . esc_attr( $name ) ;
$esc_value = esc_attr( $value );
$id = esc_attr( $name . '_v_' . $value . $product->get_id() ); //added product ID at the end of the name to target single products
$checked = checked( $checked_value, $value, false );
$filtered_label = apply_filters( 'woocommerce_variation_option_name', $label, esc_attr( $name ) );
//START VARIATION QUANTITY
//END VARIATION QUANTITY
printf('<div> <input type="radio" name="%1$s" value="%2$s" id="%3$s" %4$s><label for="%3$s">%5$s %6$s</label></div>', $input_name, $esc_value, $id, $checked, $filtered_label, $stock_data );
}
}
}
plug-in by 8manos for convert the default select dropdown to a radio button selector
plug-in url: https://es.wordpress.org/plugins/wc-variations-radio-buttons/
plug-in url: https://es.wordpress.org/plugins/wc-variations-radio-buttons/
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.