Currently, we are using an if statement within a foreach.
The code below is the script we are currently using:
Code: Select all
<?php foreach ( $addon['options'] as $i => $option ) :
$price = $option['price'] > 0 ? '(' . wc_price( get_product_addon_price_for_display( $option['price'] ) ) . ')' : '';
$current_value = 0;
if ( isset( $_POST[ 'addon-' . sanitize_title( $addon['field-name'] ) ] ) ) {
$current_value = (
isset( $_POST[ 'addon-' . sanitize_title( $addon['field-name'] ) ] ) &&
in_array( sanitize_title( $option['label'] ), $_POST[ 'addon-' . sanitize_title( $addon['field-name'] ) ] )
) ? 1 : 0;
}
?>
<p class="form-row form-row-wide addon-wrap-<?php echo sanitize_title( $addon['field-name'] ) . '-' . $i; ?>">
<label><input type="radio" class="addon addon-radio" name="addon-<?php echo sanitize_title( $addon['field-name'] ); ?>[]" data-raw-price="<?php echo esc_attr( $option['price'] ); ?>" data-price="<?php echo get_product_addon_price_for_display( $option['price'] ); ?>" value="<?php echo sanitize_title( $option['label'] ); ?>" <?php checked( $current_value, 1 ); ?> /> <?php echo wptexturize( $option['label'] . ' ' . $price ); ?></label>
</p>
<?php endforeach; ?>Code: Select all
<?php echo sanitize_title( $option['label']);?>" <?php checked( $current_value,1);?>Code: Select all
<?php echo sanitize_title( $option['label']);?>" <?php checked( $current_value,0);?>The only issue we have then got is the fact that we will then have to manually go and change every single product, and move the option "None" to the end of the list, as it is currently the first option on all of the products.
Is there a way with the code above to be able to auto-select the first option rather than the last? The name for the first option is: addon-2491-maintenance-packages-0.
Any help is much appreciated.