本文整理汇总了PHP中GFCommon::to_number方法的典型用法代码示例。如果您正苦于以下问题:PHP GFCommon::to_number方法的具体用法?PHP GFCommon::to_number怎么用?PHP GFCommon::to_number使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GFCommon
的用法示例。
在下文中一共展示了GFCommon::to_number方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: add_pending_referral
/**
* Add pending referral
*
* @access public
* @uses GFFormsModel::get_lead()
* @uses GFCommon::get_product_fields()
* @uses GFCommon::to_number()
*
* @param array $entry
* @param array $form
*/
public function add_pending_referral($entry, $form)
{
if (!$this->was_referred() || !rgar($form, 'affwp_allow_referrals')) {
return;
}
// Do some craziness to determine the price (this should be easy but is not)
$desc = isset($form['title']) ? $form['title'] : '';
$entry = GFFormsModel::get_lead($entry['id']);
$products = GFCommon::get_product_fields($form, $entry);
$total = 0;
foreach ($products['products'] as $key => $product) {
$price = GFCommon::to_number($product['price']);
if (is_array(rgar($product, 'options'))) {
$count = sizeof($product['options']);
$index = 1;
foreach ($product['options'] as $option) {
$price += GFCommon::to_number($option['price']);
}
}
$subtotal = floatval($product['quantity']) * $price;
$total += $subtotal;
}
// replace description if there are products
if (!empty($products['products'])) {
$product_names = wp_list_pluck($products['products'], 'name');
$desc = implode(', ', $product_names);
}
$total += floatval($products['shipping']['price']);
$referral_total = $this->calculate_referral_amount($total, $entry['id']);
$this->insert_pending_referral($referral_total, $entry['id'], $desc);
if (empty($total)) {
$this->mark_referral_complete($entry, array());
}
}
示例2: add_pending_referral
/**
* Add pending referral
*
* @access public
* @uses GFFormsModel::get_lead()
* @uses GFCommon::get_product_fields()
* @uses GFCommon::to_number()
*
* @param array $entry
* @param array $form
*/
public function add_pending_referral($entry, $form)
{
if ($this->was_referred()) {
// Do some craziness to determine the price (this should be easy but is not)
$desc = '';
$entry = GFFormsModel::get_lead($entry['id']);
$products = GFCommon::get_product_fields($form, $entry);
$total = 0;
foreach ($products['products'] as $key => $product) {
$desc .= $product['name'];
if ($key + 1 < count($products)) {
$description .= ', ';
}
$price = GFCommon::to_number($product['price']);
if (is_array(rgar($product, 'options'))) {
$count = sizeof($product['options']);
$index = 1;
foreach ($product['options'] as $option) {
$price += GFCommon::to_number($option['price']);
}
}
$subtotal = floatval($product['quantity']) * $price;
$total += $subtotal;
}
$total += floatval($products['shipping']['price']);
$referral_total = $this->calculate_referral_amount($total, $entry['id']);
$this->insert_pending_referral($referral_total, $entry['id'], $desc);
}
}
示例3: validate
public function validate($value, $form)
{
if (!class_exists('RGCurrency')) {
require_once GFCommon::get_base_path() . '/currency.php';
}
$price = GFCommon::to_number($value);
if (!rgblank($value) && ($price === false || $price < 0)) {
$this->failed_validation = true;
$this->validation_message = empty($this->errorMessage) ? __('Please enter a valid amount.', 'gravityforms') : $this->errorMessage;
}
}
示例4: affiliates_gravity_forms_products_amount
/**
* Product amount filter - this will deduct any field named 'Tax' (case-insensitive) from the $amount.
*
* @param float $amount
* @param array $products
* @param array $entry
* @return float
*/
public static function affiliates_gravity_forms_products_amount($amount, $products, $entry)
{
if (isset($products['products']) && is_array($products['products'])) {
foreach ($products['products'] as $id => $values) {
if (isset($values['name']) && isset($values['price']) && in_array(strtolower($values['name']), array_map('strtolower', self::$tax_fields))) {
if (class_exists('GFCommon') && method_exists('GFCommon', 'to_number')) {
$tax = GFCommon::to_number($values['price']);
$amount -= floatval($tax);
}
}
}
}
return $amount;
}
开发者ID:itthinx,项目名称:affiliates-gravityforms-tax-example,代码行数:22,代码来源:affiliates-gravityforms-tax-example.php
示例5: get_value_merge_tag
public function get_value_merge_tag($value, $input_id, $entry, $form, $modifier, $raw_value, $url_encode, $esc_html, $format)
{
$format_numeric = $modifier == 'price';
$value = $format_numeric ? GFCommon::to_number($value) : GFCommon::to_money($value);
return GFCommon::format_variable_value($value, $url_encode, $esc_html, $format);
}
示例6: sanitize_settings
public function sanitize_settings()
{
parent::sanitize_settings();
$price_number = GFCommon::to_number($this->basePrice);
$this->basePrice = GFCommon::to_money($price_number);
}
示例7: get_conditional_logic
private static function get_conditional_logic($form, $field_values = array())
{
$logics = "";
$dependents = "";
$fields_with_logic = array();
$default_values = array();
foreach ($form["fields"] as $field) {
//use section's logic if one exists
$section = RGFormsModel::get_section($form, $field["id"]);
$section_logic = !empty($section) ? rgar($section, "conditionalLogic") : null;
$field_logic = $field["type"] != "page" ? RGForms::get("conditionalLogic", $field) : null;
//page break conditional logic will be handled during the next button click
$next_button_logic = isset($field["nextButton"]) && isset($field["nextButton"]["conditionalLogic"]) ? $field["nextButton"]["conditionalLogic"] : null;
if (!empty($field_logic) || !empty($next_button_logic)) {
$field_section_logic = array("field" => $field_logic, "nextButton" => $next_button_logic, "section" => $section_logic);
$logics .= $field["id"] . ": " . GFCommon::json_encode($field_section_logic) . ",";
$fields_with_logic[] = $field["id"];
$peers = $field["type"] == "section" ? GFCommon::get_section_fields($form, $field["id"]) : array($field);
$peer_ids = array();
foreach ($peers as $peer) {
$peer_ids[] = $peer["id"];
}
$dependents .= $field["id"] . ": " . GFCommon::json_encode($peer_ids) . ",";
}
//-- Saving default values so that they can be restored when toggling conditional logic ---
$field_val = "";
$input_type = RGFormsModel::get_input_type($field);
//get parameter value if pre-populate is enabled
if (rgar($field, "allowsPrepopulate")) {
if (is_array(rgar($field, "inputs"))) {
$field_val = array();
foreach ($field["inputs"] as $input) {
$field_val["input_{$input["id"]}"] = RGFormsModel::get_parameter_value(rgar($input, "name"), $field, $field_values);
}
} else {
if ($input_type == "time") {
$parameter_val = RGFormsModel::get_parameter_value(rgar($field, "inputName"), $field, $field_values);
if (!empty($parameter_val) && preg_match('/^(\\d*):(\\d*) ?(.*)$/', $parameter_val, $matches)) {
$field_val = array();
$field_val[] = esc_attr($matches[1]);
//hour
$field_val[] = esc_attr($matches[2]);
//minute
$field_val[] = rgar($matches, 3);
//am or pm
}
} else {
if ($input_type == "list") {
$parameter_val = RGFormsModel::get_parameter_value(rgar($field, "inputName"), $field, $field_values);
$field_val = explode(",", str_replace("|", ",", $parameter_val));
} else {
$field_val = RGFormsModel::get_parameter_value(rgar($field, "inputName"), $field, $field_values);
}
}
}
}
//use default value if pre-populated value is empty
$field_val = self::default_if_empty($field, $field_val);
if (is_array(rgar($field, "choices")) && $input_type != "list") {
//radio buttons start at 0 and checkboxes start at 1
$choice_index = $input_type == "radio" ? 0 : 1;
foreach ($field["choices"] as $choice) {
if (rgar($choice, "isSelected") && $input_type == "select") {
$val = isset($choice["price"]) ? $choice["value"] . "|" . GFCommon::to_number($choice["price"]) : $choice["value"];
$default_values[$field["id"]] = $val;
} else {
if (rgar($choice, "isSelected")) {
if (!isset($default_values[$field["id"]])) {
$default_values[$field["id"]] = array();
}
$default_values[$field["id"]][] = "choice_{$field["id"]}_{$choice_index}";
}
}
$choice_index++;
}
} else {
if (!empty($field_val)) {
$default_values[$field["id"]] = $field_val;
}
}
}
$button_conditional_script = "";
//adding form button conditional logic if enabled
if (isset($form["button"]["conditionalLogic"])) {
$logics .= "0: " . GFCommon::json_encode(array("field" => $form["button"]["conditionalLogic"], "section" => null)) . ",";
$dependents .= "0: " . GFCommon::json_encode(array(0)) . ",";
$fields_with_logic[] = 0;
$button_conditional_script = "jQuery('#gform_{$form['id']}').submit(" . "function(event, isButtonPress){" . " var visibleButton = jQuery('.gform_next_button:visible, .gform_button:visible, .gform_image_button:visible');" . " return visibleButton.length > 0 || isButtonPress == true;" . "}" . ");";
}
if (!empty($logics)) {
$logics = substr($logics, 0, strlen($logics) - 1);
}
//removing last comma;
if (!empty($dependents)) {
$dependents = substr($dependents, 0, strlen($dependents) - 1);
}
//removing last comma;
$animation = rgar($form, "enableAnimation") ? "1" : "0";
global $wp_locale;
$number_format = $wp_locale->number_format['decimal_point'] == "," ? "decimal_comma" : "decimal_dot";
//.........这里部分代码省略.........
示例8: sanitize_settings_choices
/**
* Sanitize the field choices property.
*
* @param array|null $choices The field choices property.
*
* @return array|null
*/
public function sanitize_settings_choices($choices = null)
{
if (is_null($choices)) {
$choices =& $this->choices;
}
if (!is_array($choices)) {
return $choices;
}
$allowed_tags = wp_kses_allowed_html('post');
foreach ($choices as &$choice) {
if (isset($choice['isSelected'])) {
$choice['isSelected'] = (bool) $choice['isSelected'];
}
if (isset($choice['price']) && !empty($choice['price'])) {
$price_number = GFCommon::to_number($choice['price']);
$choice['price'] = GFCommon::to_money($price_number);
}
if (isset($choice['text'])) {
$choice['text'] = wp_kses($choice['text'], $allowed_tags);
}
if (isset($choice['value'])) {
$choice['value'] = wp_kses($choice['value'], $allowed_tags);
}
}
return $choices;
}
示例9: get_paypal_payment_amount
public static function get_paypal_payment_amount($form, $entry, $paypal_config)
{
//TODO: need to support old "paypal_config" format as well as new format when delayed payment suported feed addons are released
$products = GFCommon::get_product_fields($form, $entry, true);
$recurring_field = rgar($paypal_config['meta'], 'recurring_amount_field');
$total = 0;
foreach ($products['products'] as $id => $product) {
if ($paypal_config['meta']['type'] != 'subscription' || $recurring_field == $id || $recurring_field == 'all') {
$price = GFCommon::to_number($product['price']);
if (is_array(rgar($product, 'options'))) {
foreach ($product['options'] as $option) {
$price += GFCommon::to_number($option['price']);
}
}
$total += $price * $product['quantity'];
}
}
if ($recurring_field == 'all' && !empty($products['shipping']['price'])) {
$total += floatval($products['shipping']['price']);
}
return $total;
}
示例10: push_event
/**
* Push the Google Analytics Event!
*
* @since 1.4.0
* @param array $event Gravity Forms event object
* @param array $form Gravity Forms form object
*/
private function push_event($entry, $form, $ga_event_data)
{
// Init tracking object
$this->tracking = new \Racecore\GATracking\GATracking(apply_filters('gform_ua_id', $this->ua_id, $form), true);
$event = new \Racecore\GATracking\Tracking\Event();
// Set some defaults
$event->setDocumentLocation($ga_event_data['document_location']);
$event->setDocumentTitle($ga_event_data['document_title']);
// Set our event object variables
$event->setEventCategory(apply_filters('gform_event_category', $ga_event_data['gaEventCategory'], $form));
$event->setEventAction(apply_filters('gform_event_action', $ga_event_data['gaEventAction'], $form));
$event->setEventLabel(apply_filters('gform_event_label', $ga_event_data['gaEventLabel'], $form));
if ($event_value = apply_filters('gform_event_value', $ga_event_data['gaEventValue'], $form)) {
// Event value must be a valid float!
$event_value = GFCommon::to_number($event_value);
$event->setEventValue($event_value);
}
// Pppp Push it!
$this->tracking->addTracking($event);
try {
$this->tracking->send();
} catch (Exception $e) {
error_log($e->getMessage() . ' in ' . get_class($e));
}
}
开发者ID:resoundcreative-dev,项目名称:wordpress-gravity-forms-event-tracking,代码行数:32,代码来源:class-gravity-forms-event-tracking-feed.php
示例11: sanitize_settings_choices
/**
* Sanitize the field choices property.
*
* @param array|null $choices The field choices property.
*
* @return array|null
*/
public function sanitize_settings_choices($choices = null)
{
if (is_null($choices)) {
$choices =& $this->choices;
}
if (!is_array($choices)) {
return $choices;
}
foreach ($choices as &$choice) {
if (isset($choice['isSelected'])) {
$choice['isSelected'] = (bool) $choice['isSelected'];
}
if (isset($choice['price']) && !empty($choice['price'])) {
$price_number = GFCommon::to_number($choice['price']);
$choice['price'] = GFCommon::to_money($price_number);
}
if (isset($choice['text'])) {
$choice['text'] = $this->maybe_wp_kses($choice['text']);
}
if (isset($choice['value'])) {
// Strip scripts but don't encode
$allowed_protocols = wp_allowed_protocols();
$choice['value'] = wp_kses_no_null($choice['value'], array('slash_zero' => 'keep'));
$choice['value'] = wp_kses_hook($choice['value'], 'post', $allowed_protocols);
$choice['value'] = wp_kses_split($choice['value'], 'post', $allowed_protocols);
}
}
return $choices;
}
示例12: get_payment_amount
public static function get_payment_amount($form, $entry, $paypal_config)
{
$products = GFCommon::get_product_fields($form, $entry, true);
$recurring_field = rgar($paypal_config["meta"], "recurring_amount_field");
$total = 0;
foreach ($products["products"] as $id => $product) {
if ($paypal_config["meta"]["type"] != "subscription" || $recurring_field == $id || $recurring_field == "all") {
$price = GFCommon::to_number($product["price"]);
if (is_array(rgar($product, "options"))) {
foreach ($product["options"] as $option) {
$price += GFCommon::to_number($option["price"]);
}
}
$total += $price * $product['quantity'];
}
}
if ($recurring_field == "all" && !empty($products["shipping"]["price"])) {
$total += floatval($products["shipping"]["price"]);
}
return $total;
}
示例13: clean_number
public function clean_number($value)
{
if ($this->numberFormat == 'currency') {
return GFCommon::to_number($value);
} else {
return GFCommon::clean_number($value, $this->numberFormat);
}
}
示例14: get_calculation_value
public static function get_calculation_value($field_id, $form, $lead)
{
$filters = array('price', 'value', '');
$value = false;
foreach ($filters as $filter) {
if (is_numeric($value)) {
//value found, exit loop
break;
}
$value = GFCommon::to_number(GFCommon::replace_variables("{:{$field_id}:{$filter}}", $form, $lead));
}
if (!$value || !is_numeric($value)) {
GFCommon::log_debug("GFCommon::get_calculation_value(): No value or non-numeric value available for field #{$field_id}. Returning zero instead.");
$value = 0;
}
return $value;
}
示例15: get_select_choices
public static function get_select_choices($field, $value = '', $support_placeholders = true)
{
$choices = '';
if (RG_CURRENT_VIEW == 'entry' && empty($value) && empty($field->placeholder)) {
$choices .= "<option value=''></option>";
}
if (is_array($field->choices)) {
if ($support_placeholders && !empty($field->placeholder)) {
$selected = empty($value) ? "selected='selected'" : '';
$choices .= sprintf("<option value='' %s class='gf_placeholder'>%s</option>", $selected, esc_html($field->placeholder));
}
foreach ($field->choices as $choice) {
//needed for users upgrading from 1.0
$field_value = !empty($choice['value']) || $field->enableChoiceValue || $field->type == 'post_category' ? $choice['value'] : $choice['text'];
if ($field->enablePrice) {
$price = rgempty('price', $choice) ? 0 : GFCommon::to_number(rgar($choice, 'price'));
$field_value .= '|' . $price;
}
if (!isset($_GET['gf_token']) && empty($_POST) && rgblank($value) && RG_CURRENT_VIEW != 'entry') {
$selected = rgar($choice, 'isSelected') ? "selected='selected'" : '';
} else {
if (is_array($value)) {
$is_match = false;
foreach ($value as $item) {
if (RGFormsModel::choice_value_match($field, $choice, $item)) {
$is_match = true;
break;
}
}
$selected = $is_match ? "selected='selected'" : '';
} else {
$selected = RGFormsModel::choice_value_match($field, $choice, $value) ? "selected='selected'" : '';
}
}
$choice_markup = sprintf("<option value='%s' %s>%s</option>", esc_attr($field_value), $selected, esc_html($choice['text']));
$choices .= gf_apply_filters(array('gform_field_choice_markup_pre_render', $field->formId, $field->id), $choice_markup, $choice, $field, $value);
}
}
return $choices;
}