示例#1
0
/**
 * Sets an error on checkout if no gateways are enabled
 *
 * @since 1.3.4
 * @return void
 */
function edd_no_gateway_error()
{
    $gateways = edd_get_enabled_payment_gateways();
    if (empty($gateways)) {
        edd_set_error('no_gateways', __('You must enable a payment gateway to use Easy Digital Downloads', 'edd'));
    } else {
        edd_unset_error('no_gateways');
    }
}
/**
 * Validates the supplied discount sent via AJAX.
 *
 * @since 1.0
 * @return void
 */
function edd_ajax_apply_discount()
{
    if (isset($_POST['code'])) {
        $discount_code = sanitize_text_field($_POST['code']);
        $return = array('msg' => '', 'code' => $discount_code);
        $user = '';
        if (is_user_logged_in()) {
            $user = get_current_user_id();
        } else {
            parse_str($_POST['form'], $form);
            if (!empty($form['edd_email'])) {
                $user = urldecode($form['edd_email']);
            }
        }
        if (edd_is_discount_valid($discount_code, $user)) {
            $discount = edd_get_discount_by_code($discount_code);
            $amount = edd_format_discount_rate(edd_get_discount_type($discount->ID), edd_get_discount_amount($discount->ID));
            $discounts = edd_set_cart_discount($discount_code);
            $total = edd_get_cart_total($discounts);
            $return = array('msg' => 'valid', 'amount' => $amount, 'total_plain' => $total, 'total' => html_entity_decode(edd_currency_filter(edd_format_amount($total)), ENT_COMPAT, 'UTF-8'), 'code' => $discount_code, 'html' => edd_get_cart_discounts_html($discounts));
        } else {
            $errors = edd_get_errors();
            $return['msg'] = $errors['edd-discount-error'];
            edd_unset_error('edd-discount-error');
        }
        // Allow for custom discount code handling
        $return = apply_filters('edd_ajax_discount_response', $return);
        echo json_encode($return);
    }
    edd_die();
}
/**
 * edd_unset_error seems to be not working
 * since it's not unsetting what's really inside $_SESSION['edd-errors']
 * so this is probably the fix
 *
 * Removes a stored error
 *
 * Modified From:
 * EDD 1.4
 * includes/error-tracking.php
 * Modified Part:
 * unset the error in session variable
 * 
 * @param       $error_id string - the ID of the error being set
 * @return      void
*/
function edd_unset_error_fix($error_id)
{
    // edd_unset_error fix for version less than 1.4
    if (version_compare(EDD_VERSION, '1.5', '<')) {
        $errors = edd_get_errors();
        if ($errors) {
            if (isset($_SESSION['edd-errors'][$error_id])) {
                unset($_SESSION['edd-errors'][$error_id]);
            }
        }
    } else {
        edd_unset_error($error_id);
    }
}
示例#4
0
function edd_downloads_ajax_apply_discount()
{
    $existing_discount = edd_get_cart_discounts();
    $discount_code = $_POST['code'];
    if (!empty($existing_discount) && in_array($discount_code, $existing_discount)) {
        $return['msg'] = __('This code has already been applied', 'edd_downloads');
        edd_unset_error('edd-discount-error');
        // Allow for custom discount code handling
        $return = apply_filters('edd_ajax_discount_response', $return);
        echo json_encode($return);
    } else {
        edd_ajax_apply_discount();
    }
    edd_die();
}
    edd_unset_error('email_empty');
} else {
    if ($email_error = has_edd_error('invalid_email')) {
        $email_error_class = 'error';
        edd_unset_error('invalid_email');
    }
}
$fn_error_class = '';
if ($fn_error = has_edd_error('invalid_first_name')) {
    $fn_error_class = 'error';
    edd_unset_error('invalid_first_name');
}
$ln_error_class = '';
if ($ln_error = has_edd_error('invalid_last_name')) {
    $ln_error_class = 'error';
    edd_unset_error('invalid_last_name');
}
$customer = get_customer();
?>
<fieldset id="edd_checkout_user_info">
	<span><legend><?php 
echo apply_filters('edd_checkout_personal_info_text', __('Personal Info', 'yoast-theme'));
?>
</legend></span>

	<p id="edd-first-name-wrap">
		<label class="edd-label <?php 
echo $fn_error_class;
?>
" for="edd_first">
			<?php 
/**
 * Validates the supplied discount sent via AJAX.
 *
 * @since 1.0
 * @return void
 */
function edd_ajax_apply_discount()
{
    if (isset($_POST['code'])) {
        $discount_code = $_POST['code'];
        $return = array('msg' => '', 'code' => $discount_code);
        if (edd_is_discount_valid($discount_code)) {
            $discount = edd_get_discount_by_code($discount_code);
            $amount = edd_format_discount_rate(edd_get_discount_type($discount->ID), edd_get_discount_amount($discount->ID));
            $discounts = edd_set_cart_discount($discount_code);
            $total = edd_get_cart_total($discounts);
            $return = array('msg' => 'valid', 'amount' => $amount, 'total_plain' => $total, 'total' => html_entity_decode(edd_currency_filter(edd_format_amount($total)), ENT_COMPAT, 'UTF-8'), 'code' => $_POST['code'], 'html' => edd_get_cart_discounts_html($discounts));
        } else {
            $errors = edd_get_errors();
            $return['msg'] = $errors['edd-discount-error'];
            edd_unset_error('edd-discount-error');
        }
        // Allow for custom discount code handling
        $return = apply_filters('edd_ajax_discount_response', $return);
        echo json_encode($return);
    }
    edd_die();
}
<?php

/**
 * @package Yoast\YoastCom
 */
namespace Yoast\YoastCom\Theme;

edd_checkout_hidden_fields();
global $edd_options;
if (isset($edd_options['show_agree_to_terms'])) {
    $class = '';
    if (has_edd_error('agree_to_terms')) {
        $class = 'error';
        edd_unset_error('agree_to_terms');
    }
    ?>
<fieldset id="edd_terms_agreement" class="<?php 
    echo $class;
    ?>
">
	<legend><?php 
    _e('Terms of Service', 'yoast-theme');
    ?>
</legend>
	<input name="edd_agree_to_terms" type="checkbox" id="edd_agree_to_terms" value="1" />
	<label for="edd_agree_to_terms"><?php 
    echo isset($edd_options['agree_label']) ? $edd_options['agree_label'] : __('Agree to Terms?', 'yoast-theme');
    ?>
		<sup> *</sup></label>
</fieldset>
<br />