cart->get_cart(); $entry = $usces->cart->get_entry(); if ( empty( $cart ) ) { // Trying to get back the entry data. usces_recovery_session_data(); $cart = $usces->cart->get_cart(); $entry = $usces->cart->get_entry(); if ( empty( $cart ) ) { $linkkey = usces_get_link_key( $results ); $log = array( 'acting' => 'reg_orderdata', 'key' => $linkkey, 'result' => 'SESSION EMPTY', 'data' => $_REQUEST, ); usces_save_order_acting_error( $log ); return 0; } else { $log = array( 'acting' => 'reg_orderdata', 'key' => $_REQUEST['absolute_trans_id'], 'result' => 'OK SESSION RECOVERY', 'data' => $_REQUEST, ); usces_save_order_acting_error( $log ); } } // Anti-spam. if ( ( empty( $entry['customer']['name1'] ) && empty( $entry['customer']['name2'] ) ) || empty( $entry['customer']['mailaddress1'] ) || empty( $entry ) || empty( $cart ) ) { $anti_spam = apply_filters( 'usces_filter_reg_orderdata_anti_spam', false, $entry, $cart ); if ( ! $anti_spam ) { usces_log( 'reg_orderdata : Anti-spam', 'acting_transaction.log' ); return false; } } $charging_type = $usces->getItemChargingType( $cart[0]['post_id'] ); $item_total_price = $usces->get_total_price( $cart ); $member = $usces->get_member(); $order_table_name = $wpdb->prefix . 'usces_order'; $order_table_meta_name = $wpdb->prefix . 'usces_order_meta'; $member_table_name = usces_get_tablename( 'usces_member' ); $set = $usces->getPayments( $entry['order']['payment_name'] ); $status = ''; $gmtdate = get_date_from_gmt( gmdate( 'Y-m-d H:i:s', time() ) ); if ( 'continue' === $charging_type ) { $order_modified = substr( $gmtdate, 0, 10 ); } else { $noreceipt_status_table = apply_filters( 'usces_filter_noreceipt_status', get_option( 'usces_noreceipt_status' ) ); $status = ( in_array( $set['settlement'], $noreceipt_status_table ) ) ? 'noreceipt' : ''; $order_modified = NULL; } if ( 'paypal.php' === $set['module'] || 'acting_paypal_ec' === $set['settlement'] ) { if ( ( isset( $results['payment_status'] ) && 'Completed' !== $results['payment_status'] ) || ( isset( $results['profile_status'] ) && 'ActiveProfile' !== $results['profile_status'] ) ) { $status = 'pending'; } } $status = apply_filters( 'usces_filter_reg_orderdata_status', $status, $entry ); $order_date = ( isset( $results['order_date'] ) ) ? $results['order_date'] : $gmtdate; $delidue_date = ( isset( $entry['order']['delidue_date'] ) ) ? $entry['order']['delidue_date'] : NULL; $query = $wpdb->prepare( "INSERT INTO $order_table_name ( `mem_id`, `order_email`, `order_name1`, `order_name2`, `order_name3`, `order_name4`, `order_zip`, `order_pref`, `order_address1`, `order_address2`, `order_address3`, `order_tel`, `order_fax`, `order_delivery`, `order_cart`, `order_note`, `order_delivery_method`, `order_delivery_date`, `order_delivery_time`, `order_payment_name`, `order_condition`, `order_item_total_price`, `order_getpoint`, `order_usedpoint`, `order_discount`, `order_shipping_charge`, `order_cod_fee`, `order_tax`, `order_date`, `order_modified`, `order_status`, `order_delidue_date` ) VALUES (%d, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %d, %s, %s, %s, %s, %f, %d, %d, %f, %f, %f, %f, %s, %s, %s, %s)", $member['ID'], $entry['customer']['mailaddress1'], $entry['customer']['name1'], $entry['customer']['name2'], $entry['customer']['name3'], $entry['customer']['name4'], $entry['customer']['zipcode'], $entry['customer']['pref'], $entry['customer']['address1'], $entry['customer']['address2'], $entry['customer']['address3'], $entry['customer']['tel'], $entry['customer']['fax'], serialize( $entry['delivery'] ), serialize( $cart ), $entry['order']['note'], $entry['order']['delivery_method'], $entry['order']['delivery_date'], $entry['order']['delivery_time'], $entry['order']['payment_name'], serialize( $entry['condition'] ), $item_total_price, $entry['order']['getpoint'], $entry['order']['usedpoint'], $entry['order']['discount'], $entry['order']['shipping_charge'], $entry['order']['cod_fee'], $entry['order']['tax'], $order_date, $order_modified, $status, $delidue_date ); $res = $wpdb->query( $query ); if ( false === $res ) { $order_id = false; usces_log( 'reg_orderdata : ' . $wpdb->last_error, 'database_error.log' ); } else { $order_id = $wpdb->insert_id; } if ( ! $order_id ) { usces_log( 'reg_error_entry : ' . print_r( $entry, true ), 'acting_transaction.log' ); return false; } $usces->cart->set_order_entry( array( 'ID' => $order_id ) ); $usces->set_order_meta_value( 'customer_country', $entry['customer']['country'], $order_id ); if ( usces_is_tax_display() && usces_is_reduced_taxrate() ) { $usces_tax = Welcart_Tax::get_instance(); $materials = array( 'total_items_price' => $entry['order']['total_items_price'], 'discount' => ( isset( $entry['order']['discount'] ) ) ? $entry['order']['discount'] : 0, 'shipping_charge' => ( isset( $entry['order']['shipping_charge'] ) ) ? $entry['order']['shipping_charge'] : 0, 'cod_fee' => ( isset( $entry['order']['cod_fee'] ) ) ? $entry['order']['cod_fee'] : 0, 'use_point' => ( isset( $entry['order']['usedpoint'] ) ) ? $entry['order']['usedpoint'] : 0, 'carts' => $cart, 'condition' => $entry['condition'], ); $usces_tax->get_order_tax( $materials ); $usces->set_order_meta_value( 'subtotal_standard', $usces_tax->subtotal_standard, $order_id ); $usces->set_order_meta_value( 'subtotal_reduced', $usces_tax->subtotal_reduced, $order_id ); $usces->set_order_meta_value( 'discount_standard', $usces_tax->discount_standard, $order_id ); $usces->set_order_meta_value( 'discount_reduced', $usces_tax->discount_reduced, $order_id ); if ( 'include' === $usces->options['tax_mode'] ) { $usces->set_order_meta_value( 'tax_standard', 0, $order_id ); $usces->set_order_meta_value( 'tax_reduced', 0, $order_id ); } else { $usces->set_order_meta_value( 'tax_standard', $usces_tax->tax_standard, $order_id ); $usces->set_order_meta_value( 'tax_reduced', $usces_tax->tax_reduced, $order_id ); } } if ( $member['ID'] && 'activate' === $options['membersystem_state'] && 'activate' === $options['membersystem_point'] ) { $mquery = ''; if ( usces_is_complete_settlement( $entry['order']['payment_name'], $status ) ) { if ( apply_filters( 'usces_action_acting_getpoint_switch', true, $order_id, true ) ) { $mquery = $wpdb->prepare( "UPDATE $member_table_name SET mem_point = (mem_point + %d - %d) WHERE ID = %d", $entry['order']['getpoint'], $entry['order']['usedpoint'], $member['ID'] ); } else { $mquery = $wpdb->prepare( "UPDATE $member_table_name SET mem_point = (mem_point - %d) WHERE ID = %d", $entry['order']['usedpoint'], $member['ID'] ); } } elseif ( 0 < $entry['order']['usedpoint'] ) { $mquery = $wpdb->prepare( "UPDATE $member_table_name SET mem_point = (mem_point - %d) WHERE ID = %d", $entry['order']['usedpoint'], $member['ID'] ); } if ( $mquery ) { $wpdb->query( $mquery ); $mquery = $wpdb->prepare( "SELECT mem_point FROM $member_table_name WHERE ID = %d", $member['ID'] ); $point = $wpdb->get_var( $mquery ); $_SESSION['usces_member']['point'] = $point; } } if ( ! empty( $entry['reserve'] ) ) { foreach ( $entry['reserve'] as $key => $value ) { if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $key, $value, $order_id ); } } if ( ! preg_match( '/pending|noreceipt/', $status ) ) { $usces->set_order_meta_value( 'receipted_date', $gmtdate, $order_id ); } if ( ! empty( $entry['custom_order'] ) ) { foreach ( $entry['custom_order'] as $key => $value ) { $csod_key = 'csod_' . $key; $value = wel_safe_text_serialize( $value ); if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $csod_key, $value, $order_id ); } } if ( ! empty( $entry['custom_customer'] ) ) { foreach ( $entry['custom_customer'] as $key => $value ) { $cscs_key = 'cscs_' . $key; $value = wel_safe_text_serialize( $value ); if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $cscs_key, $value, $order_id ); } } if ( ! empty( $entry['custom_delivery'] ) ) { foreach ( $entry['custom_delivery'] as $key => $value ) { $csde_key = 'csde_' . $key; $value = wel_safe_text_serialize( $value ); if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $csde_key, $value, $order_id ); } } $args = array( 'cart' => $cart, 'entry' => $entry, 'order_id' => $order_id, 'member_id' => $member['ID'], 'payments' => $set, 'charging_type' => $charging_type, 'results' => $results, ); do_action( 'usces_action_reg_orderdata', $args ); return $order_id; } function usces_new_orderdata() { global $wpdb, $usces; $_POST = $usces->stripslashes_deep_post( $_POST ); $_POST['customer']['name3'] = isset( $_POST['customer']['name3'] ) ? $_POST['customer']['name3'] : ''; $_POST['customer']['name4'] = isset( $_POST['customer']['name4'] ) ? $_POST['customer']['name4'] : ''; $usces->cart->crear_cart(); $cart = $usces->cart->get_cart(); $item_total_price = $usces->get_total_price( $cart ); $entry = $usces->cart->get_entry(); $member_id = $usces->get_memberid_by_email( $_POST['customer']['mailaddress'] ); $order_table_name = $wpdb->prefix . 'usces_order'; $order_table_meta_name = $wpdb->prefix . 'usces_order_meta'; $member_table_name = usces_get_tablename( 'usces_member' ); $set = $usces->getPayments( $_POST['offer']['payment_name'] ); if ( isset( $_POST['offer']['receipt'] ) ) { $status = $_POST['offer']['receipt'] . ','; } else { $noreceipt_status_table = apply_filters( 'usces_filter_noreceipt_status', get_option( 'usces_noreceipt_status' ) ); $status = ( in_array( $set['settlement'], $noreceipt_status_table ) ) ? 'noreceipt' : ''; } $status .= ( ! WCUtils::is_blank( $_POST['offer']['taio'] ) && '#none#' !== $_POST['offer']['taio'] ) ? $_POST['offer']['taio'] . ',' : ''; $status .= $_POST['offer']['admin']; $status = apply_filters( 'usces_filter_new_orderdata_status', $status, $entry ); $order_conditions = $usces->get_condition(); $gmtdate = get_date_from_gmt( gmdate( 'Y-m-d H:i:s', time() ) ); $delivery_date = $_POST['offer']['delivery_date']; if ( ! usces_is_date( $delivery_date ) ) { $delivery_date = apply_filters( 'usces_filter_label_delivery_date_no_preference', __( 'Non-request', 'usces_dual' ) ); } $query = $wpdb->prepare( "INSERT INTO $order_table_name ( `mem_id`, `order_email`, `order_name1`, `order_name2`, `order_name3`, `order_name4`, `order_zip`, `order_pref`, `order_address1`, `order_address2`, `order_address3`, `order_tel`, `order_fax`, `order_delivery`, `order_cart`, `order_note`, `order_delivery_method`, `order_delivery_date`, `order_delivery_time`, `order_payment_name`, `order_condition`, `order_item_total_price`, `order_getpoint`, `order_usedpoint`, `order_discount`, `order_shipping_charge`, `order_cod_fee`, `order_tax`, `order_date`, `order_modified`, `order_status`, `order_delidue_date` ) VALUES (%d, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %d, %s, %s, %s, %s, %f, %d, %d, %f, %f, %f, %f, %s, %s, %s, %s)", $member_id, $_POST['customer']['mailaddress'], $_POST['customer']['name1'], $_POST['customer']['name2'], $_POST['customer']['name3'], $_POST['customer']['name4'], $_POST['customer']['zipcode'], $_POST['customer']['pref'], $_POST['customer']['address1'], $_POST['customer']['address2'], $_POST['customer']['address3'], $_POST['customer']['tel'], $_POST['customer']['fax'], serialize( $_POST['delivery'] ), serialize( $cart ), $_POST['offer']['note'], $_POST['offer']['delivery_method'], $delivery_date, $_POST['offer']['delivery_time'], $_POST['offer']['payment_name'], serialize( $order_conditions ), $item_total_price, $_POST['offer']['getpoint'], $_POST['offer']['usedpoint'], $_POST['offer']['discount'], $_POST['offer']['shipping_charge'], $_POST['offer']['cod_fee'], $_POST['offer']['tax'], $gmtdate, null, $status, $_POST['offer']['delidue_date'] ); $res = $wpdb->query( $query ); $order_id = $wpdb->insert_id; $_REQUEST['order_id'] = $wpdb->insert_id; if ( ! $order_id ) { return false; } $usces->set_order_meta_value( 'customer_country', $_POST['customer']['country'], $order_id ); if ( usces_is_tax_display() && usces_is_reduced_taxrate() ) { $usces_tax = Welcart_Tax::get_instance(); $materials = array( 'total_items_price' => $item_total_price, 'discount' => $_POST['offer']['discount'], 'shipping_charge' => $_POST['offer']['shipping_charge'], 'cod_fee' => $_POST['offer']['cod_fee'], 'use_point' => $_POST['offer']['usedpoint'], 'carts' => $cart, 'condition' => $order_conditions, ); $usces_tax->get_order_tax( $materials ); $usces->set_order_meta_value( 'subtotal_standard', $usces_tax->subtotal_standard, $order_id ); $usces->set_order_meta_value( 'subtotal_reduced', $usces_tax->subtotal_reduced, $order_id ); $usces->set_order_meta_value( 'discount_standard', $usces_tax->discount_standard, $order_id ); $usces->set_order_meta_value( 'discount_reduced', $usces_tax->discount_reduced, $order_id ); if ( 'include' === $usces->options['tax_mode'] ) { $usces->set_order_meta_value( 'tax_standard', 0, $order_id ); $usces->set_order_meta_value( 'tax_reduced', 0, $order_id ); } else { $usces->set_order_meta_value( 'tax_standard', $usces_tax->tax_standard, $order_id ); $usces->set_order_meta_value( 'tax_reduced', $usces_tax->tax_reduced, $order_id ); } } if ( ! empty( $_POST['custom_order'] ) ) { $csod_meta = usces_has_custom_field_meta( 'order' ); foreach ( $_POST['custom_order'] as $key => $value ) { if ( ! is_array( $csod_meta ) || ! isset( $csod_meta[ $key ] ) ) { continue; } $csod_key = 'csod_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $csod_key, $value, $order_id ); } } if ( ! empty( $_POST['custom_customer'] ) ) { foreach ( $_POST['custom_customer'] as $key => $value ) { $cscs_key = 'cscs_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $cscs_key, $value, $order_id ); } } if ( ! empty( $_POST['custom_delivery'] ) ) { foreach ( $_POST['custom_delivery'] as $key => $value ) { $csde_key = 'csde_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $usces->set_order_meta_value( $csde_key, $value, $order_id ); } } if ( ! preg_match( '/pending|noreceipt/', $status ) ) { $usces->set_order_meta_value( 'receipted_date', $gmtdate, $order_id ); } $args = array( 'cart' => $cart, 'entry' => $entry, 'order_id' => $order_id, 'member_id' => $member_id, 'payments' => $set, ); do_action( 'usces_action_reg_orderdata', $args ); $usces->cart->crear_cart(); return $res; } function usces_new_memberdata() { global $wpdb, $usces; $_POST = $usces->stripslashes_deep_post( $_POST ); $_POST['member']['name3'] = isset( $_POST['member']['name3'] ) ? $_POST['member']['name3'] : ''; $_POST['member']['name4'] = isset( $_POST['member']['name4'] ) ? $_POST['member']['name4'] : ''; $salt = usces_get_salt( '', 1 ); $pass = usces_get_hash( trim( $_POST['member']['password'] ), $salt, 1 ); $member_table_name = usces_get_tablename( 'usces_member' ); $member_table_meta_name = usces_get_tablename( 'usces_member_meta' ); $gmtdate = get_date_from_gmt( gmdate( 'Y-m-d H:i:s', time() ) ); $query = $wpdb->prepare( "INSERT INTO $member_table_name (`mem_email`, `mem_pass`, `mem_status`, `mem_cookie`, `mem_point`, `mem_name1`, `mem_name2`, `mem_name3`, `mem_name4`, `mem_zip`, `mem_pref`, `mem_address1`, `mem_address2`, `mem_address3`, `mem_tel`, `mem_fax`, `mem_delivery_flag`, `mem_delivery`, `mem_registered`, `mem_nicename`) VALUES (%s, %s, %d, %s, %d, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %d, %s, %s, %s)", trim( $_POST['member']['email'] ), $pass, trim( $_POST['member']['status'] ), '', trim( $_POST['member']['point'] ), trim( $_POST['member']['name1'] ), trim( $_POST['member']['name2'] ), trim( $_POST['member']['name3'] ), trim( $_POST['member']['name4'] ), trim( $_POST['member']['zipcode'] ), trim( $_POST['member']['pref'] ), trim( $_POST['member']['address1'] ), trim( $_POST['member']['address2'] ), trim( $_POST['member']['address3'] ), trim( $_POST['member']['tel'] ), trim( $_POST['member']['fax'] ), '', '', $gmtdate, '' ); $res[0] = $wpdb->query( $query ); if ( false === $res[0] ) { return false; } $member_id = $wpdb->insert_id; $_REQUEST['member_id'] = $wpdb->insert_id; if ( ! $member_id ) { return false; } $usces->set_member_meta_value( 'customer_country', $_POST['member']['country'], $member_id ); $csmb_meta = usces_has_custom_field_meta( 'member' ); if ( is_array( $csmb_meta ) ) { foreach ( $csmb_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_member_meta( 'csmb_' . $key, $member_id ); } } } $admb_meta = usces_has_custom_field_meta( 'admin_member' ); if ( is_array( $admb_meta ) ) { foreach ( $admb_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_member_meta( 'admb_' . $key, $member_id ); } } } $i = 1; if ( ! empty( $_POST['custom_member'] ) ) { foreach ( $_POST['custom_member'] as $key => $value ) { $csmb_key = 'csmb_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_member_meta_value( $csmb_key, $value, $member_id ); if ( false === $res[ $i ] ) { return false; } $i++; } } if ( ! empty( $_POST['admin_custom_member'] ) ) { foreach ( $_POST['admin_custom_member'] as $key => $value ) { $admb_key = 'admb_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_member_meta_value( $admb_key, $value, $member_id ); if ( false === $res[ $i ] ) { return false; } $i++; } } if ( ! empty( $salt ) ) { $res[ $i ] = $usces->set_member_meta_value( 'mem_salt', $salt, $member_id ); $i++; } $result = ( 0 < array_sum( array_filter( $res, 'is_numeric' ) ) ) ? 1 : 0; do_action( 'usces_action_post_new_memberdata', $member_id, $res[0] ); return $result; } function usces_delete_memberdata( $ID = 0 ) { global $wpdb, $usces; if ( 0 === (int) $ID ) { if ( ! isset( $_REQUEST['member_id'] ) || WCUtils::is_blank( $_REQUEST['member_id'] ) ) { return 0; } $ID = $_REQUEST['member_id']; } do_action( 'usces_action_pre_delete_memberdata', $ID ); $member_table_name = usces_get_tablename( 'usces_member' ); $member_table_meta_name = usces_get_tablename( 'usces_member_meta' ); $query = $wpdb->prepare( "DELETE FROM $member_table_name WHERE ID = %d", $ID ); $res = $wpdb->query( $query ); if ( $res ) { $query = $wpdb->prepare( "DELETE FROM $member_table_meta_name WHERE member_id = %d", $ID ); $wpdb->query( $query ); } do_action( 'usces_action_post_delete_memberdata', $res, $ID ); return $res; } function usces_update_memberdata() { global $wpdb, $usces; $_POST = $usces->stripslashes_deep_post( $_POST ); $member_table_name = usces_get_tablename( 'usces_member' ); $member_table_meta_name = usces_get_tablename( 'usces_member_meta' ); $ID = (int) $_REQUEST['member_id']; $name3 = ( isset( $_POST['member']['name3'] ) ) ? trim( $_POST['member']['name3'] ) : ''; $name4 = ( isset( $_POST['member']['name4'] ) ) ? trim( $_POST['member']['name4'] ) : ''; $query = $wpdb->prepare( "UPDATE $member_table_name SET `mem_email`=%s, `mem_status`=%s, `mem_point`=%d, `mem_name1`=%s, `mem_name2`=%s, `mem_name3`=%s, `mem_name4`=%s, `mem_zip`=%s, `mem_pref`=%s, `mem_address1`=%s, `mem_address2`=%s, `mem_address3`=%s, `mem_tel`=%s, `mem_fax`=%s WHERE ID = %d", trim( $_POST['member']['email'] ), trim( $_POST['member']['status'] ), trim( $_POST['member']['point'] ), trim( $_POST['member']['name1'] ), trim( $_POST['member']['name2'] ), $name3, $name4, trim( $_POST['member']['zipcode'] ), trim( $_POST['member']['pref'] ), trim( $_POST['member']['address1'] ), trim( $_POST['member']['address2'] ), trim( $_POST['member']['address3'] ), trim( $_POST['member']['tel'] ), trim( $_POST['member']['fax'] ), $ID ); do_action( 'usces_action_pre_update_memberdata', $ID ); $res[0] = $wpdb->query( $query ); do_action( 'usces_action_post_update_memberdata', $ID, $res[0] ); if ( false === $res[0] ) { return false; } $usces->set_member_meta_value( 'customer_country', $_POST['member']['country'], $ID ); $csmb_meta = usces_has_custom_field_meta( 'member' ); if ( is_array( $csmb_meta ) ) { foreach ( $csmb_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_member_meta( 'csmb_' . $key, $ID ); } } } $admb_meta = usces_has_custom_field_meta( 'admin_member' ); if ( is_array( $admb_meta ) ) { foreach ( $admb_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_member_meta( 'admb_' . $key, $ID ); } } } $i = 1; if ( ! empty( $_POST['custom_member'] ) ) { foreach ( $_POST['custom_member'] as $key => $value ) { $csmb_key = 'csmb_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_member_meta_value( $csmb_key, $value, $ID ); if ( false === $res[ $i ] ) { return false; } $i++; } } if ( ! empty( $_POST['admin_custom_member'] ) ) { foreach ( $_POST['admin_custom_member'] as $key => $value ) { $admb_key = 'admb_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_member_meta_value( $admb_key, $value, $ID ); if ( false === $res[ $i ] ) { return false; } $i++; } } do_action( 'usces_action_post_update_after_memberdata', $ID, $res ); $result = ( 0 < array_sum( array_filter( $res, 'is_numeric' ) ) ) ? 1 : 0; return $result; } function usces_delete_orderdata() { global $wpdb, $usces; if ( ! isset( $_REQUEST['order_id'] ) || WCUtils::is_blank( $_REQUEST['order_id'] ) ) { return 0; } $order_table = $wpdb->prefix . 'usces_order'; $order_meta_table = $wpdb->prefix . 'usces_order_meta'; $ID = $_REQUEST['order_id']; $del = usces_delete_order_check( $ID ); if ( $del ) { $query = $wpdb->prepare( "SELECT * FROM $order_table WHERE ID = %d", $ID ); $order_data = $wpdb->get_row( $query, OBJECT ); $point = 0; if ( 'activate' === $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] && ! empty( $order_data->mem_id ) && ! $usces->is_status( 'cancel', $order_data->order_status ) ) { if ( 0 < $order_data->order_getpoint ) { if ( usces_is_complete_settlement( $order_data->order_payment_name, $order_data->order_status ) || $usces->is_status( 'receipted', $order_data->order_status) ) { $point += $order_data->order_getpoint; } } if ( 0 < $order_data->order_usedpoint ) { $point -= $order_data->order_usedpoint; } } $query = $wpdb->prepare( "DELETE FROM $order_table WHERE ID = %d", $ID ); $res = $wpdb->query( $query ); $args = compact( 'ID', 'point', 'res' ); if ( $res ) { do_action( 'usces_action_del_orderdata', $order_data, $args ); $query = $wpdb->prepare( "DELETE FROM $order_meta_table WHERE order_id = %d", $ID ); $wpdb->query( $query ); usces_delete_ordercartdata( NULL, $ID ); if ( 0 != $point ) { usces_restore_point( $order_data->mem_id, $point ); } } } else { $res = true; } return $res; } function usces_update_serialized_cart() { global $wpdb, $usces; if ( ! isset( $_REQUEST['order_id'] ) || WCUtils::is_blank( $_REQUEST['order_id'] ) ) { return 0; } $ID = $_REQUEST['order_id']; $order_table_name = $wpdb->prefix . 'usces_order'; $usces->cart->crear_cart(); $usces->cart->upCart(); $cart = $usces->cart->get_cart(); if ( $cart && is_array( $cart ) && 0 < count( $cart ) ) { // $idx = count( $cart ) - 1; // $post_id = $cart[ $idx ]['post_id']; // $sku = $cart[ $idx ]['sku']; // $sku_code = esc_attr( urldecode( $sku ) ); // $cartItemName = $usces->getCartItemName( $post_id, $sku_code, false ); // $skuPrice = $cart[ $idx ]['price']; $query = $wpdb->prepare( "UPDATE $order_table_name SET `order_cart`=%s WHERE ID = %d", serialize( $cart ), $ID ); $res = $wpdb->query( $query ); $usces->cart->crear_cart(); } } function usces_delete_serialized_cart() { global $wpdb, $usces; if ( ! isset( $_REQUEST['order_id'] ) || WCUtils::is_blank( $_REQUEST['order_id'] ) ) { return 0; } $indexs = array_keys( $_POST['delButton'] ); $index = $indexs[0]; $ids = array_keys( $_POST['delButton'][ $index ] ); $post_id = $ids[0]; $skus = array_keys( $_POST['delButton'][ $index ][ $post_id ] ); $sku = $skus[0]; $usces->up_serialize( $index, $post_id, $sku ); do_action( 'usces_cart_del_row', $index ); if ( isset( $_SESSION['usces_cart'][ $usces->serial ] ) ) { unset( $_SESSION['usces_cart'][ $usces->serial ] ); } unset( $_SESSION['usces_entry']['order']['usedpoint'] ); } function usces_get_serialized_cart( $order_id ) { global $wpdb, $usces; $order_table_name = $wpdb->prefix . 'usces_order'; $query = $wpdb->prepare( "SELECT order_cart FROM $order_table_name WHERE ID = %d", $order_id ); $order_cart = $wpdb->get_var( $query ); $cart = wel_safe_unserialize( $order_cart ); foreach ( $cart as $cart_index => $cart_row ) { $options = array(); if ( ! empty( $cart_row['options'] ) ) { foreach ( $cart_row['options'] as $key => $value ) { $key = urldecode( $key ); if ( is_array( $value ) ) { foreach ( $value as $vk => $vv ) { $value[ $vk ] = urldecode( $vv ); } $options[ $key ] = $value; } else { $options[ $key ] = urldecode( $value ); } } $cart_row['options'] = $options; } $cart[ $cart_index ] = $cart_row; } return $cart; } function usces_update_ordercart() { $ordercart_table_name = $wpdb->prefix . 'usces_ordercart'; foreach ( $_POST['skuPrice'] as $cart_id => $price ) { $quantity = $_POST['quant'][ $cart_id ]; $query = $wpdb->prepare( "UPDATE $ordercart_table_name SET price = %f, quantity = %f WHERE cart_id = %d", $price, $quantity, $cart_id ); $wpdb->query( $query ); } $ordercart_meta_table_name = $wpdb->prefix . 'usces_ordercart_meta'; foreach ( $_POST['itemOption'] as $cartmeta_id => $value ) { if ( is_array( $value ) ) { foreach ( $value as $v ) { $opval[ $v ] = $v; } $value = serialize( $opval ); } $query = $wpdb->prepare( "UPDATE $ordercart_meta_table_name SET meta_value = %s WHERE cartmeta_id = %d", $value, $cartmeta_id ); $wpdb->query( $query ); } // if ( false === $res ) { // $res = "-1#usces#"; // } else { // $res = $skuPrice . "#usces#" . $cartItemName; // } // //return $res; } function usces_update_ordercartdata( $order_id ) { global $wpdb, $usces; if ( ! isset( $_POST['skuPrice'] ) ) { return; } $ordercart_table_name = $wpdb->prefix . 'usces_ordercart'; $ordercart_meta_table_name = $wpdb->prefix . 'usces_ordercart_meta'; foreach ( (array) $_POST['skuPrice'] as $cart_id => $price ) { $quantity = $_POST['quant'][ $cart_id ]; $query = $wpdb->prepare( "UPDATE $ordercart_table_name SET price = %f, quantity = %f WHERE cart_id = %d", $price, $quantity, $cart_id ); $wpdb->query( $query ); // itemOptionチェックボックスとラジオのチェック. $cart = usces_get_ordercartdata_row( $cart_id ); $item_opts = usces_get_opts( $cart['post_id'], 'name', false ); foreach ( $item_opts as $key => $iopts ) { if ( 3 === (int) $iopts['means'] || 4 === (int) $iopts['means'] ) { $cart_meta = usces_get_ordercart_meta( 'option', $cart_id, $iopts['name'] ); $cart_meta_id = isset( $cart_meta[0]['cartmeta_id'] ) ? $cart_meta[0]['cartmeta_id'] : 'notfound'; // POSTが無ければmeta_valueをNULLに変更. if ( ! isset( $_POST['itemOption'][ $cart_meta_id ] ) ) { $query = $wpdb->prepare( "UPDATE $ordercart_meta_table_name SET meta_value = %s WHERE cartmeta_id = %d", NULL, $cart_meta_id ); $wpdb->query( $query ); } } } } if ( ! isset( $_POST['itemOption'] ) ) { return; } $ordercart_meta_table_name = $wpdb->prefix . 'usces_ordercart_meta'; foreach ( (array) $_POST['itemOption'] as $cartmeta_id => $value ) { $post_id = usces_get_post_id_by_cartmeta_id( $cartmeta_id ); $option_fields = usces_get_opts( $post_id, 'name' ); $ordercart_metas = usces_get_ordercart_meta_by_id( $cartmeta_id ); $means = $option_fields[ $ordercart_metas['meta_key'] ]['means']; if ( is_array( $value ) ) { $opval = array(); if ( 4 === (int) $means ) { foreach ( $value as $v ) { $opval[] = urldecode( $v ); } } else { foreach ( $value as $v ) { $opval[ $v ] = urldecode( $v ); } } $value = serialize( $opval ); } else { if ( 3 === (int) $means ) { $value = urldecode( $value ); } } $query = $wpdb->prepare( "UPDATE $ordercart_meta_table_name SET meta_value = %s WHERE cartmeta_id = %d", $value, $cartmeta_id ); $wpdb->query( $query ); } } function usces_delete_ordercartdata( $cart_id, $order_id = NULL ) { global $wpdb, $usces; $ordercart_table_name = $wpdb->prefix . 'usces_ordercart'; $ordercart_meta_table_name = $wpdb->prefix . 'usces_ordercart_meta'; if ( NULL != $cart_id ) { $query = $wpdb->prepare( "DELETE FROM $ordercart_table_name WHERE cart_id = %d", $cart_id ); $wpdb->query( $query ); $mquery = $wpdb->prepare( "DELETE FROM $ordercart_meta_table_name WHERE cart_id = %d", $cart_id ); $wpdb->query( $mquery ); } elseif ( NULL != $order_id ) { $query = $wpdb->prepare( "SELECT cart_id FROM $ordercart_table_name WHERE order_id = %d", $order_id ); $cat_ids = $wpdb->get_col( $query ); $query = $wpdb->prepare( "DELETE FROM $ordercart_table_name WHERE order_id = %d", $order_id ); $wpdb->query( $query ); foreach ( $cat_ids as $id ) { $mquery = $wpdb->prepare( "DELETE FROM $ordercart_meta_table_name WHERE cart_id = %d", $id ); $wpdb->query( $mquery ); } } } function usces_get_ordercartdata_row( $cart_id ) { global $usces, $wpdb; $cart_table = $wpdb->prefix . 'usces_ordercart'; $query = $wpdb->prepare( "SELECT * FROM $cart_table WHERE cart_id = %d", $cart_id ); $cart = $wpdb->get_row( $query, ARRAY_A ); return $cart; } function usces_get_ordercartdata( $order_id ) { global $usces, $wpdb; $cart_table = $wpdb->prefix . 'usces_ordercart'; $cart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $query = $wpdb->prepare( "SELECT * FROM $cart_table WHERE order_id = %d ORDER BY cart_id", $order_id ); $cart = $wpdb->get_results( $query, ARRAY_A ); foreach ( $cart as $key => $value ) { $cart[ $key ]['sku'] = $value['sku_code']; $query = $wpdb->prepare( "SELECT * FROM $cart_meta_table WHERE cart_id = %d ORDER BY cartmeta_id", $value['cart_id'] ); $results = $wpdb->get_results( $query, ARRAY_A ); foreach ( (array) $results as $value ) { switch ( $value['meta_type'] ) { case 'option': $cart[ $key ]['options'][ $value['meta_key'] ] = $value['meta_value']; break; case 'advance': $cart[ $key ]['advance'][ $value['meta_key'] ] = $value['meta_value']; break; } } if ( ! isset( $cart[ $key ]['options'] ) ) { $cart[ $key ]['options'] = array(); } if ( ! isset( $cart[ $key ]['advance'] ) ) { $cart[ $key ]['advance'] = array(); } } return $cart; } function usces_update_ordercheck() { global $wpdb; $tableName = $wpdb->prefix . 'usces_order'; $order_id = $_POST['order_id']; $checked = $_POST['checked']; $logger = Logger::start( $order_id, 'orderedit', 'update' ); $query = $wpdb->prepare( "SELECT `order_check` FROM $tableName WHERE ID = %d", $order_id ); $res = $wpdb->get_var( $query ); $checkfield = ! empty( $res ) ? wel_safe_unserialize( $res ) : array(); if ( ! is_array( $checkfield ) ) { $checkfield = array(); } if ( ! isset( $checkfield[ $checked ] ) ) { $checkfield[ $checked ] = $checked; } $query = $wpdb->prepare( "UPDATE $tableName SET `order_check` = %s WHERE ID = %d", serialize( $checkfield ), $order_id ); $res = $wpdb->query( $query ); if ( $res ) { $logger->flush(); return $checked; } else { return 'error'; } } function usces_update_orderdata() { global $wpdb, $usces; $_POST = $usces->stripslashes_deep_post( $_POST ); $order_table_name = $wpdb->prefix . 'usces_order'; $order_table_meta_name = $wpdb->prefix . 'usces_order_meta'; $member_table_name = usces_get_tablename( 'usces_member' ); $ID = $_REQUEST['order_id']; $old_cart = usces_get_ordercartdata( $ID ); $query = $wpdb->prepare( "SELECT * FROM $order_table_name WHERE ID = %d", $ID ); $old_orderdata = $wpdb->get_row( $query ); $old_status = $old_orderdata->order_status; if ( isset( $_POST['delButtonAdmin'] ) ) { foreach ( $_POST['delButtonAdmin'] as $del_cart_id => $delvalue ) { do_action( 'usces_admin_delete_orderrow', $del_cart_id, $ID, $old_cart ); usces_delete_ordercartdata( $del_cart_id, NULL ); } } else { usces_update_ordercartdata( $ID ); } $new_cart = usces_get_ordercartdata( $ID ); $gmtdate = get_date_from_gmt( gmdate( 'Y-m-d H:i:s', time() ) ); $item_total_price = $usces->get_total_price( $new_cart ); $taio = isset( $_POST['offer']['taio'] ) ? $_POST['offer']['taio'] : ''; $receipt = isset( $_POST['offer']['receipt'] ) ? $_POST['offer']['receipt'] : ''; $admin = isset( $_POST['offer']['admin'] ) ? $_POST['offer']['admin'] : ''; $status = $usces->make_status( $taio, $receipt, $admin ); if ( 'completion' === $taio || 'continuation' === $taio ) { if ( 'update' === $_POST['up_modified'] ) { $order_modified = substr( $gmtdate, 0, 10 ); } else { $order_modified = $_POST['modified']; } } else { $order_modified = ''; } $order_modified = apply_filters( 'usces_filter_update_orderdata_modified', $order_modified, $taio, $gmtdate, $old_orderdata ); $ordercheck = isset( $_POST['check'] ) ? serialize( $_POST['check'] ) : ''; $member_id = isset( $_POST['member_id'] ) ? $_POST['member_id'] : 0; if ( 'cancel' === $taio ) { $query = $wpdb->prepare( "UPDATE $order_table_name SET `order_modified` = %s, `order_status` = %s WHERE ID = %d", $order_modified, $status, $ID ); $res[0] = $wpdb->query( $query ); $query = $wpdb->prepare( "SELECT * FROM $order_table_name WHERE ID = %d", $ID ); $new_orderdata = $wpdb->get_row( $query ); if ( 'activate' == $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] && ! empty( $member_id ) && ! $usces->is_status( 'cancel', $old_status ) ) { $point = 0; if ( 0 < $old_orderdata->order_getpoint ) { if ( usces_is_complete_settlement( $old_orderdata->order_payment_name, $old_orderdata->order_status ) || $usces->is_status( 'receipted', $old_orderdata->order_status ) ) { $point += $old_orderdata->order_getpoint; } } if ( 0 < $old_orderdata->order_usedpoint ) { $point -= $old_orderdata->order_usedpoint; } if ( 0 !== $point ) { usces_restore_point( $member_id, $point ); } } do_action( 'usces_action_update_orderdata', $new_orderdata, $old_status, $old_orderdata, $new_cart, $old_cart ); return 1; } $old_deli = wel_safe_unserialize( $old_orderdata->order_delivery ); foreach ( (array) $_POST['delivery'] as $dk => $dv ) { $old_deli[ $dk ] = $dv; } $delivery = serialize( $old_deli ); $delivery_date = ( isset( $_POST['offer']['delivery_date'] ) ) ? $_POST['offer']['delivery_date'] : ''; if ( ! usces_is_date( $delivery_date ) ) { $delivery_date = apply_filters( 'usces_filter_label_delivery_date_no_preference', __( 'Non-request', 'usces_dual' ) ); } $query = $wpdb->prepare( "UPDATE $order_table_name SET `mem_id`=%d, `order_email`=%s, `order_name1`=%s, `order_name2`=%s, `order_name3`=%s, `order_name4`=%s, `order_zip`=%s, `order_pref`=%s, `order_address1`=%s, `order_address2`=%s, `order_address3`=%s, `order_tel`=%s, `order_fax`=%s, `order_delivery`=%s, `order_note`=%s, `order_delivery_method`=%d, `order_delivery_date`=%s, `order_delivery_time`=%s, `order_payment_name`=%s, `order_item_total_price`=%f, `order_getpoint`=%d, `order_usedpoint`=%d, `order_discount`=%f, `order_shipping_charge`=%f, `order_cod_fee`=%f, `order_tax`=%f, `order_modified`=%s, `order_status`=%s, `order_delidue_date`=%s, `order_check`=%s WHERE ID = %d", $member_id, $_POST['customer']['mailaddress'], $_POST['customer']['name1'], $_POST['customer']['name2'], ( isset( $_POST['customer']['name3'] ) ? $_POST['customer']['name3'] : '' ), ( isset( $_POST['customer']['name4'] ) ? $_POST['customer']['name4'] : '' ), $_POST['customer']['zipcode'], $_POST['customer']['pref'], $_POST['customer']['address1'], $_POST['customer']['address2'], $_POST['customer']['address3'], $_POST['customer']['tel'], $_POST['customer']['fax'], $delivery, $_POST['offer']['note'], $_POST['offer']['delivery_method'], $delivery_date, $_POST['offer']['delivery_time'], $_POST['offer']['payment_name'], $item_total_price, $_POST['offer']['getpoint'], $_POST['offer']['usedpoint'], $_POST['offer']['discount'], $_POST['offer']['shipping_charge'], $_POST['offer']['cod_fee'], $_POST['offer']['tax'], $order_modified, $status, $_POST['offer']['delidue_date'], $ordercheck, $ID ); $res[0] = $wpdb->query( $query ); if ( false === $res[0] ) { return false; } $usces->set_order_meta_value( 'customer_country', $_POST['customer']['country'], $ID ); if ( usces_is_tax_display() && usces_is_reduced_taxrate( $ID ) ) { $usces->del_order_meta( 'subtotal_standard', $ID ); $usces->del_order_meta( 'subtotal_reduced', $ID ); $usces->del_order_meta( 'discount_standard', $ID ); $usces->del_order_meta( 'discount_reduced', $ID ); $usces->del_order_meta( 'tax_standard', $ID ); $usces->del_order_meta( 'tax_reduced', $ID ); if ( isset( $_POST['order_subtotal_standard'] ) && isset( $_POST['order_subtotal_reduced'] ) && isset( $_POST['order_discount_standard'] ) && isset( $_POST['order_discount_reduced'] ) && isset( $_POST['order_tax_standard'] ) && isset( $_POST['order_tax_reduced'] ) ) { $usces->set_order_meta_value( 'subtotal_standard', $_POST['order_subtotal_standard'], $ID ); $usces->set_order_meta_value( 'subtotal_reduced', $_POST['order_subtotal_reduced'], $ID ); $usces->set_order_meta_value( 'discount_standard', $_POST['order_discount_standard'], $ID ); $usces->set_order_meta_value( 'discount_reduced', $_POST['order_discount_reduced'], $ID ); if ( 'include' === $usces->options['tax_mode'] ) { $usces->set_order_meta_value( 'tax_standard', 0, $ID ); $usces->set_order_meta_value( 'tax_reduced', 0, $ID ); } else { $usces->set_order_meta_value( 'tax_standard', $_POST['order_tax_standard'], $ID ); $usces->set_order_meta_value( 'tax_reduced', $_POST['order_tax_reduced'], $ID ); } } else { $usces_tax = Welcart_Tax::get_instance(); $materials = array( 'total_items_price' => $item_total_price, 'discount' => $_POST['offer']['discount'], 'shipping_charge' => $_POST['offer']['shipping_charge'], 'cod_fee' => $_POST['offer']['cod_fee'], 'use_point' => $_POST['offer']['usedpoint'], 'carts' => $new_cart, 'condition' => $old_orderdata->order_condition, ); $usces_tax->get_order_tax( $materials ); $usces->set_order_meta_value( 'subtotal_standard', $usces_tax->subtotal_standard, $ID ); $usces->set_order_meta_value( 'subtotal_reduced', $usces_tax->subtotal_reduced, $ID ); $usces->set_order_meta_value( 'discount_standard', $usces_tax->discount_standard, $ID ); $usces->set_order_meta_value( 'discount_reduced', $usces_tax->discount_reduced, $ID ); if ( 'include' === $usces->options['tax_mode'] ) { $usces->set_order_meta_value( 'tax_standard', 0, $ID ); $usces->set_order_meta_value( 'tax_reduced', 0, $ID ); } else { $usces->set_order_meta_value( 'tax_standard', $usces_tax->tax_standard, $ID ); $usces->set_order_meta_value( 'tax_reduced', $usces_tax->tax_reduced, $ID ); } } } $csod_meta = usces_has_custom_field_meta( 'order' ); if ( is_array( $csod_meta ) ) { foreach ( $csod_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_order_meta( 'csod_' . $key, $ID ); } } } $cscs_meta = usces_has_custom_field_meta( 'customer' ); if ( is_array( $cscs_meta ) ) { foreach ( $cscs_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_order_meta( 'cscs_' . $key, $ID ); } } } $csde_meta = usces_has_custom_field_meta( 'delivery' ); if ( is_array( $csde_meta ) ) { foreach ( $csde_meta as $key => $entry ) { if ( 4 === (int) $entry['means'] ) { $usces->del_order_meta( 'csde_' . $key, $ID ); } } } $i = 1; if ( ! empty( $_POST['custom_order'] ) ) { $csod_meta = usces_has_custom_field_meta( 'order' ); foreach ( $_POST['custom_order'] as $key => $value ) { if ( ! is_array( $csod_meta ) || ! isset( $csod_meta[ $key ] ) ) { continue; } $csod_key = 'csod_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_order_meta_value( $csod_key, $value, $ID ); if ( false === $res[ $i ] ) { return false; } $i++; } } if ( ! empty ( $_POST['custom_customer'] ) ) { foreach ( $_POST['custom_customer'] as $key => $value ) { $cscs_key = 'cscs_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_order_meta_value( $cscs_key, $value, $ID ); if ( false === $res[ $i ] ) { return false; } $i++; } } if ( ! empty( $_POST['custom_delivery'] ) ) { foreach ( $_POST['custom_delivery'] as $key => $value ) { $csde_key = 'csde_' . $key; if ( is_array( $value ) ) { $value = serialize( $value ); } $res[ $i ] = $usces->set_order_meta_value( $csde_key, $value, $ID ); if ( false === $res[ $i ] ) { return false; } $i++; } } if ( ! preg_match( '/pending|noreceipt/', $old_status ) && preg_match( '/pending|noreceipt/', $status ) ) { $rquery = $wpdb->prepare( "DELETE FROM $order_table_meta_name WHERE order_id = %d AND meta_key = %s", $ID, 'receipted_date' ); $wpdb->query( $rquery ); } elseif ( ! preg_match( '/pending|noreceipt/', $old_status ) && ! preg_match( '/pending|noreceipt/', $status ) ) { $query = $wpdb->prepare( "SELECT order_id FROM $order_table_meta_name WHERE order_id = %d AND meta_key = %s", $ID, 'receipted_date' ); $varres = $wpdb->get_var( $query ); if ( empty( $varres ) ) { $usces->set_order_meta_value( 'receipted_date', $gmtdate, $ID ); } } elseif ( preg_match( '/pending|noreceipt/', $old_status ) && ! preg_match( '/pending|noreceipt/', $status ) ) { $usces->set_order_meta_value( 'receipted_date', $gmtdate, $ID ); } if ( 'activate' === $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] && ! empty( $member_id ) ) { $point = 0; $getpoint = ( ! empty( $_POST['offer']['getpoint'] ) ) ? (int) $_POST['offer']['getpoint'] : 0; $usedpoint = ( ! empty( $_POST['offer']['usedpoint'] ) ) ? (int) $_POST['offer']['usedpoint'] : 0; if ( $usces->is_status( 'cancel', $old_status ) && ! $usces->is_status( 'cancel', $status ) ) { // キャンセル→新規受付・取り寄せ中・発送済み. if ( 0 < $getpoint ) { if ( usces_is_complete_settlement( $_POST['offer']['payment_name'], $status ) || $usces->is_status( 'receipted', $status ) ) { $point -= $getpoint; } } if ( 0 < $usedpoint ) { $point += $usedpoint; } } else { if ( ! usces_is_complete_settlement( $_POST['offer']['payment_name'] ) ) { if ( ! preg_match( '/pending|noreceipt/', $old_status ) && preg_match( '/pending|noreceipt/', $status ) ) { // 入金→未入金. $point += $getpoint; // ポイント取消. } elseif ( preg_match( '/pending|noreceipt/', $old_status ) && !preg_match( '/pending|noreceipt/', $status ) ) { // 未入金→入金. $point -= $getpoint; // ポイント追加. } elseif ( preg_match( '/pending|noreceipt/', $old_status ) && preg_match( '/pending|noreceipt/', $status ) ) { // 未入金→未入金. $point = 0; // ポイント追加. } else { if ( $old_orderdata->order_getpoint != $getpoint ) { $point += $old_orderdata->order_getpoint - $getpoint; } } } else { if ( $old_orderdata->order_getpoint != $getpoint ) { $point += $old_orderdata->order_getpoint - $getpoint; } } if ( $old_orderdata->order_usedpoint != $usedpoint ) { $point -= $old_orderdata->order_usedpoint - $usedpoint; } } if ( 0 != $point ) { usces_restore_point( $member_id, $point ); } } $result = ( 0 < array_sum( array_filter( $res, 'is_numeric' ) ) ) ? 1 : 0; $query = $wpdb->prepare( "SELECT * FROM $order_table_name WHERE ID = %d", $ID ); $new_orderdata = $wpdb->get_row( $query ); do_action( 'usces_action_update_orderdata', $new_orderdata, $old_status, $old_orderdata, $new_cart, $old_cart ); $usces->cart->crear_cart(); return $result; } function usces_all_change_zaiko( &$obj ) { global $wpdb, $usces; $ids = filter_input( INPUT_POST, 'listcheck', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); $change = filter_input( INPUT_POST, 'change', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); $zaiko = ( null !== $change && false !== $change ) ? (int) $change['word']['zaiko'] : 0; $status = true; foreach ( (array) $ids as $post_id ) { $skus = wel_get_skus( $post_id, 'sort', false ); foreach ( (array) $skus as $sku ) { $res = usces_update_sku( $post_id, $sku['code'], 'stock', $zaiko ); if ( ! $res ) { $status = false; } } } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } } function usces_all_change_itemdisplay( &$obj ) { global $wpdb; $ids = $_POST['listcheck']; $post_status = $_POST['change']['word']['display_status']; $status = true; foreach ( (array) $ids as $post_id ) { $post_data = array( 'ID' => $post_id, 'post_status' => $post_status ); $res = wp_update_post( $post_data ); if ( 0 === $res ) { $status = false; } } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } } function usces_all_change_order_reciept( &$obj ) { global $wpdb, $usces; $tableName = $wpdb->prefix . 'usces_order'; $ids = $_POST['listcheck']; if ( isset( $_REQUEST['change']['word'] ) && ! is_array( $_REQUEST['change']['word'] ) ) { $change_word = $_REQUEST['change']['word']; } elseif ( isset( $_REQUEST['change']['word']['order_reciept'] ) ) { $change_word = $_REQUEST['change']['word']['order_reciept']; } else { $change_word = ''; } $status = true; foreach ( (array) $ids as $id ) { $logger = Logger::start( $id, 'orderlist', 'update' ); $query = $wpdb->prepare( "SELECT order_status, mem_id, order_getpoint, order_payment_name FROM $tableName WHERE ID = %d", $id ); $order_res = $wpdb->get_row( $query, ARRAY_A ); $statusstr = $order_res['order_status']; $restore_point = false; $getpoint = $order_res['order_getpoint']; if ( false !== strpos( $statusstr, 'cancel' ) ) { continue; } if ( false === strpos( $statusstr, 'noreceipt' ) && false === strpos( $statusstr, 'receipted' ) ) { continue; } $old_status = $statusstr; if ( $change_word == 'receipted' ) { if ( false !== strpos( $statusstr, 'noreceipt' ) ) { // 未入金→入金. $statusstr = str_replace( 'noreceipt', 'receipted', $statusstr ); if ( ! usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } } } elseif ( $change_word == 'noreceipt' ) { if ( false !== strpos( $statusstr, 'receipted' ) ) { // 入金済み→未入金. $statusstr = str_replace( 'receipted', 'noreceipt', $statusstr ); if ( ! usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; } } } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); $res = $wpdb->query( $query ); if ( false === $res ) { $status = false; } if ( 'activate' === $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] ) { if ( ! empty( $order_res['mem_id'] ) && 0 < $order_res['order_getpoint'] ) { if ( $res && $restore_point ) { usces_restore_point( $order_res['mem_id'], $getpoint ); } } } if ( $status ) { do_action( 'usces_action_collective_order_reciept_each', $id, $statusstr, $old_status ); } if ( ! empty( $res ) ) { $logger->flush(); } } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } do_action( 'usces_action_collective_order_reciept', array( &$obj ) ); } function usces_all_change_order_status( &$obj ) { global $wpdb, $usces; $tableName = $wpdb->prefix . 'usces_order'; $ids = $_POST['listcheck']; foreach ( (array) $ids as $id ) { $status = true; $query = $wpdb->prepare( "SELECT order_status, mem_id, order_getpoint, order_usedpoint, order_payment_name FROM $tableName WHERE ID = %d", $id ); $order_res = $wpdb->get_row( $query, ARRAY_A ); $statusstr = $order_res['order_status']; $restore_point = false; $getpoint = $order_res['order_getpoint']; $usedpoint = $order_res['order_usedpoint']; $old_status = $statusstr; if ( isset( $_REQUEST['change']['word'] ) && ! is_array( $_REQUEST['change']['word'] ) ) { $change_word = $_REQUEST['change']['word']; } elseif ( isset( $_REQUEST['change']['word']['order_reciept'] ) ) { $change_word = $_REQUEST['change']['word']['order_reciept']; } elseif ( isset( $_REQUEST['change']['word']['order_status'] ) ) { $change_word = $_REQUEST['change']['word']['order_status']; } else { $change_word = ''; } $query = ''; switch ( $change_word ) { case 'estimate': if ( false !== strpos( $statusstr, 'adminorder' ) ) { $statusstr = str_replace( 'adminorder', 'estimate', $statusstr ); } elseif ( false === strpos( $statusstr, 'estimate' ) ) { if ( ',' !== substr( $statusstr, -1 ) ) { $statusstr .= ','; } $statusstr .= 'estimate,'; } if ( false === strpos( $statusstr, 'cancel' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $usedpoint = $usedpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $usedpoint = $usedpoint * -1; // add point. } } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); break; case 'adminorder': if ( false !== strpos( $statusstr, 'estimate' ) ) { $statusstr = str_replace( 'estimate', 'adminorder', $statusstr ); if ( false === strpos( $statusstr, 'cancel' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; //add point. } } } elseif ( false === strpos( $statusstr, 'adminorder' ) ) { if ( ',' !== substr( $statusstr, -1 ) ) { $statusstr .= ','; } $statusstr .= 'adminorder,'; } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); break; case 'frontorder': if ( false !== strpos( $statusstr, 'estimate' ) ) { $statusstr = str_replace( 'estimate,', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); if ( false === strpos( $statusstr, 'cancel' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } } } elseif ( false !== strpos( $statusstr, 'adminorder' ) ) { $statusstr = str_replace( 'adminorder,', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); break; case 'duringorder': if ( false !== strpos( $statusstr, 'cancel' ) ) { $statusstr = str_replace( 'cancel', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); if ( false === strpos( $statusstr, 'estimate' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } } } if ( false !== strpos( $statusstr, 'completion' ) ) { $statusstr = str_replace( 'completion', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'new' ) ) { $statusstr = str_replace( 'new', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false === strpos( $statusstr, 'duringorder' ) ) { if ( ',' !== substr( $statusstr, -1 ) ) { $statusstr .= ','; } $statusstr .= 'duringorder,'; } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); break; case 'cancel': if ( false !== strpos( $statusstr, 'completion' ) ) { $statusstr = str_replace( 'completion', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'new' ) ) { $statusstr = str_replace( 'new', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'duringorder' ) ) { $statusstr = str_replace( 'duringorder', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false === strpos( $statusstr, 'cancel' ) ) { if ( ',' !== substr( $statusstr, -1 ) ) { $statusstr .= ','; } $statusstr .= 'cancel,'; } if ( false === strpos( $statusstr, 'estimate' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $usedpoint = $usedpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $usedpoint = $usedpoint * -1; // add point. } } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); break; case 'completion': if ( false !== strpos( $statusstr, 'new' ) ) { $statusstr = str_replace( 'new', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'duringorder' ) ) { $statusstr = str_replace( 'duringorder', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'cancel' ) ) { $statusstr = str_replace( 'cancel', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); if ( false === strpos( $statusstr, 'estimate' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } } } if ( false === strpos( $statusstr, 'completion' ) ) { if ( ',' !== substr( $statusstr, -1 ) ) { $statusstr .= ','; } $statusstr .= 'completion,'; } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s, order_modified = %s WHERE ID = %d", $statusstr, substr( current_time( 'mysql' ), 0, 10 ), $id ); break; case 'new': case 'neworder': if ( false !== strpos( $statusstr, 'duringorder' ) ) { $statusstr = str_replace( 'duringorder,', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'completion' ) ) { $statusstr = str_replace( 'completion,', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); } if ( false !== strpos( $statusstr, 'cancel' ) ) { $statusstr = str_replace( 'cancel,', '', $statusstr ); $statusstr = trim( $statusstr, ',' ); if ( false === strpos( $statusstr, 'estimate' ) ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } elseif ( $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $restore_point = true; $getpoint = $getpoint * -1; // add point. } } } $query = $wpdb->prepare( "UPDATE $tableName SET order_status = %s WHERE ID = %d", $statusstr, $id ); break; default: $query = apply_filters( 'usces_filter_collective_order_status_query', $query, $statusstr, $id ); } if ( ! empty ( $query ) ) { $logger = Logger::start( $id, 'orderlist', 'update' ); $res = $wpdb->query( $query ); if ( false === $res ) { $status = false; } if ( 'activate' === $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] ) { if ( ! empty( $order_res['mem_id'] ) && ( 0 < $order_res['order_getpoint'] || 0 < $order_res['order_usedpoint'] ) ) { if ( $res && $restore_point ) { usces_restore_point( $order_res['mem_id'], $getpoint + $usedpoint ); } } } if ( $status ) { do_action( 'usces_action_collective_order_status_each', $id, $statusstr, $old_status ); $logger->flush(); } } } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } do_action( 'usces_action_collective_order_status', array( &$obj ) ); } function usces_all_delete_order_data( &$obj ) { global $wpdb, $usces; $tableName = $wpdb->prefix . 'usces_order'; $tableMetaName = $wpdb->prefix . 'usces_order_meta'; $ids = $_POST['listcheck']; $status = true; foreach ( (array) $ids as $id ) { $del = usces_delete_order_check( $id ); if ( false === $del ) { continue; } $logger = Logger::start( $id, 'orderlist', 'delete' ); $point = 0; $query = $wpdb->prepare( "SELECT * FROM $tableName WHERE ID = %d", $id ); $order_res = $wpdb->get_row( $query, ARRAY_A ); if ( 'activate' === $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] && ! empty( $order_res['mem_id'] ) && ! $usces->is_status( 'cancel', $order_res['order_status'] ) ) { if ( 0 < $order_res['order_getpoint'] ) { if ( usces_is_complete_settlement( $order_res['order_payment_name'], $order_res['order_status'] ) || $usces->is_status( 'receipted', $order_res['order_status'] ) ) { $point += $order_res['order_getpoint']; } } if ( 0 < $order_res['order_usedpoint'] ) { $point -= $order_res['order_usedpoint']; } } $query = $wpdb->prepare( "DELETE FROM $tableName WHERE ID = %d", $id ); $res = $wpdb->query( $query ); if ( false === $res ) { $status = false; } else { if ( 0 != $point ) { usces_restore_point( $order_res['mem_id'], $point ); } do_action( 'usces_action_collective_order_delete_each', $id, $order_res ); usces_delete_ordercartdata( NULL, $id ); $metaquery = $wpdb->prepare( "DELETE FROM $tableMetaName WHERE order_id = %d", $id ); $metares = $wpdb->query( $metaquery ); $logger->flush(); } } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } do_action( 'usces_action_collective_order_delete', array( &$obj ) ); } function usces_all_change_member_rank( &$obj ) { global $wpdb, $usces; $tableName = usces_get_tablename( 'usces_member' ); $ids = $_POST['listcheck']; $status = true; foreach ( (array) $ids as $id ) { $logger = Logger::start( $id, 'memberlist', 'update' ); $value = isset( $_REQUEST['change']['word'] ) ? $_REQUEST['change']['word'] : ''; $query = $wpdb->prepare( "UPDATE $tableName SET mem_status = %d WHERE ID = %d", $value, $id ); $res = $wpdb->query( $query ); if ( false === $res ) { $status = false; } if ( $status ) { do_action( 'usces_action_collective_member_rank_each', $id, $value ); } $logger->flush(); } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } do_action( 'usces_action_collective_member_rank', array( &$obj ) ); } function usces_all_change_member_point( &$obj ) { global $wpdb, $usces; $tableName = usces_get_tablename( 'usces_member' ); $ids = $_POST['listcheck']; $status = true; foreach ( (array) $ids as $id ) { $logger = Logger::start( $id, 'memberlist', 'update' ); $value = isset( $_REQUEST['change']['word'] ) ? $_REQUEST['change']['word'] : ''; $query = $wpdb->prepare( "UPDATE $tableName SET mem_point = %d WHERE ID = %d", $value, $id ); $res = $wpdb->query( $query ); if ( false === $res ) { $status = false; } if ( $status ) { do_action( 'usces_action_collective_member_point_each', $id, $value ); } $logger->flush(); } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } do_action( 'usces_action_collective_member_point', array( &$obj ) ); } function usces_all_delete_member_data( &$obj ) { global $wpdb, $usces; $ids = $_POST['listcheck']; $status = true; foreach ( (array) $ids as $id ) { $del = usces_delete_member_check( $id ); if ( false === $del ) { continue; } $logger = Logger::start( $id, 'memberlist', 'delete'); $old_data = $usces->get_member_info( $id ); $res = usces_delete_memberdata( $id ); if ( false === $res ) { $status = false; do_action( 'usces_action_collective_member_delete_each', $id, $old_data ); } else { $logger->flush(); } } if ( true === $status ) { $obj->set_action_status( 'success', __( 'I completed collective operation.', 'usces' ) ); } elseif ( false === $status ) { $obj->set_action_status( 'error', __( 'ERROR: I was not able to complete collective operation', 'usces' ) ); } else { $obj->set_action_status( 'none', '' ); } do_action( 'usces_action_collective_member_delete', array( &$obj ) ); } function usces_check_acting_return() { global $usces; $entry = $usces->cart->get_entry(); $acting = ( isset( $_GET['acting'] ) ) ? $_GET['acting'] : ''; $results = array(); switch ( $acting ) { case 'epsilon': if ( isset( $_GET['duplicate'] ) && $_GET['duplicate'] == 1 ) { $results[0] = 'duplicate'; } elseif ( isset( $_GET['result'] ) ) { $results[0] = (int) $_GET['result']; $results['reg_order'] = true; } else { $str = explode( '?', $_GET['acting_return'] ); if ( ! isset( $str[1] ) ) { $results[0] = 0; } else { parse_str( $str[1], $para ); $results[0] = isset( $para['result'] ) ? (int) $para['result'] : 0; foreach ( $para as $key => $value ) { $results[ $key ] = $value; } } } $results['reg_order'] = true; break; case 'paypal': usces_log( 'paypal in ', 'acting_transaction.log' ); $paypal_file = $usces->options['settlement_path'] . 'paypal.php'; if ( file_exists( $paypal_file ) ) { require_once( $paypal_file ); $results = paypal_check( $usces_paypal_url ); remove_action( 'shutdown', array( &$usces, 'lastprocessing' ) ); $results['reg_order'] = true; } else { $results['reg_order'] = true; } break; case 'remise_card': $results = $_POST; if ( $_REQUEST['acting_return'] && ( isset( $_REQUEST['X-ERRCODE'] ) && ' ' === $_REQUEST['X-ERRCODE'] ) ) { usces_log( 'remise card entry data : ' . print_r( $entry, true ), 'acting_transaction.log' ); $results[0] = 1; }else{ $results[0] = 0; } if ( isset( $_REQUEST['dlseller_update'] ) ) { $results['reg_order'] = false; } else { $results['reg_order'] = true; } break; case 'remise_conv': $results = $_GET; if ( $_REQUEST['acting_return'] && isset( $_REQUEST['X-JOB_ID'] ) && '0:0000' === $_REQUEST['X-R_CODE'] ) { $results[0] = 1; } else { $results[0] = 0; } $results['reg_order'] = true; break; case 'jpayment_card': $results = $_GET; $rst = ( isset( $_GET['rst'] ) ) ? (int) $_GET['rst'] : 0; if ( 2 === $rst ) { usces_log( 'jpayment card error : ' . print_r( $entry, true ), 'acting_transaction.log' ); $cod = ( isset( $_GET['cod'] ) ) ? $_GET['cod'] : ''; $log = array( 'acting' => $acting, 'key' => $cod, 'result' => $rst, 'data' => $_GET, ); usces_save_order_acting_error( $log ); } $results[0] = ( 1 === $rst ) ? 1 : 0; $results['reg_order'] = true; break; case 'jpayment_conv': $results = $_GET; $rst = ( isset( $_GET['rst'] ) ) ? (int) $_GET['rst'] : 0; if ( 2 === $rst ) { usces_log( 'jpayment conv error : ' . print_r( $entry, true ), 'acting_transaction.log' ); $cod = ( isset( $_GET['cod'] ) ) ? $_GET['cod'] : ''; $log = array( 'acting' => $acting, 'key' => $cod, 'result' => $rst, 'data' => $_GET, ); usces_save_order_acting_error( $log ); } $results[0] = ( 1 === $rst && 'CPL_PRE' === $_GET['ap'] ) ? 1 : 0; $results['reg_order'] = true; break; case 'jpayment_bank': $results = $_GET; $rst = ( isset( $_GET['rst'] ) ) ? (int) $_GET['rst'] : 0; if ( 2 === $rst ) { usces_log( 'jpayment bank error : ' . print_r( $entry, true ), 'acting_transaction.log' ); $cod = ( isset( $_GET['cod'] ) ) ? $_GET['cod'] : ''; $log = array( 'acting' => $acting, 'key' => $cod, 'result' => $rst, 'data' => $_GET, ); usces_save_order_acting_error( $log ); } $results[0] = ( 1 === $rst ) ? 1 : 0; $results['reg_order'] = true; break; case 'paypal_ec': $results = $_GET; // Build a second API request to PayPal, using the token as the ID to get the details on the payment authorization. $req_token = isset( $_REQUEST['token'] ) ? $_REQUEST['token'] : '0'; $nvpstr = '&TOKEN=' . urlencode( $req_token ); $usces->paypal->setMethod( 'GetExpressCheckoutDetails' ); $usces->paypal->setData( $nvpstr ); $res = $usces->paypal->doExpressCheckout(); $resArray = $usces->paypal->getResponse(); $ack = strtoupper( $resArray['ACK'] ); if ( 'SUCCESS' === $ack || 'SUCCESSWITHWARNING' === $ack ) { if ( usces_have_continue_charge() ) { $results[0] = 1; } else { $amt = floor( $resArray['AMT'] * 100 ); $total_full_price = usces_crform( $entry['order']['total_full_price'], false, false, 'return', false ); $total_full_price = floor( $total_full_price * 100 ); if ( $amt != $total_full_price ) { usces_log( 'PayPal : AMT Error. AMT=' . $resArray['AMT'] . ', total_full_price=' . $entry['order']['total_full_price'], 'acting_transaction.log' ); $results[0] = 0; } else { $results[0] = 1; } } } else { // Display a user friendly Error on the page using any of the following error information returned by PayPal. $ErrorCode = urldecode( $resArray['L_ERRORCODE0'] ); $ErrorShortMsg = urldecode( $resArray['L_SHORTMESSAGE0'] ); $ErrorLongMsg = urldecode( $resArray['L_LONGMESSAGE0'] ); $ErrorSeverityCode = urldecode( $resArray['L_SEVERITYCODE0'] ); usces_log( 'PayPal : GetExpressCheckoutDetails API call failed. Error Code:[' . $ErrorCode . '] Error Severity Code:[' . $ErrorSeverityCode . '] Short Error Message:' . $ErrorShortMsg . ' Detailed Error Message:' . $ErrorLongMsg, 'acting_transaction.log' ); $results[0] = 0; } $results['reg_order'] = true; break; case 'telecom_card': $results = $_GET; if ( $_REQUEST['result'] ) { usces_log( $acting . ' entry data : ' . print_r( $entry, true ), 'acting_transaction.log' ); $results[0] = 1; } else { usces_log( $acting . ' error : ' . print_r( $_REQUEST, true ), 'acting_transaction.log' ); $results[0] = 0; } $results['reg_order'] = true; break; case 'digitalcheck_card': $results = $_REQUEST; if ( isset( $_REQUEST['SID'] ) ) { $results[0] = 1; } else { $results[0] = 0; } $results['reg_order'] = true; break; case 'digitalcheck_conv': $results = $_REQUEST; $results[0] = 1; $results['reg_order'] = false; break; case 'mizuho_card': case 'mizuho_conv': $results = $_GET; if ( isset( $_GET['rsltcd'] ) ) { if ( '000' === substr( $_GET['rsltcd'], 0, 3 ) ) { $results[0] = 1; $results['reg_order'] = true; } else { $results[0] = 0; $results['reg_order'] = false; } } else { $results[0] = 0; $results['reg_order'] = false; } break; case 'anotherlane_card': $results[0] = 1; $results['reg_order'] = false; break; case 'veritrans_card': case 'veritrans_conv': $results[0] = ( isset( $_GET['result'] ) ) ? (int) $_GET['result'] : 0; $results['reg_order'] = false; break; case 'paypal_wpp': $results[0] = 1; $results['reg_order'] = false; break; default: do_action( 'usces_action_check_acting_return_default' ); $results = $_REQUEST; if ( isset( $_REQUEST['result'] ) && true == $_REQUEST['result'] ) { usces_log( $acting . ' entry data : ' . print_r( $entry, true ), 'acting_transaction.log' ); $results[0] = 1; } else { // usces_log( $acting . ' error : ' . print_r( $_REQUEST, true ), 'acting_transaction.log' ); Not necessarily an error. $results[0] = 0; } $results['reg_order'] = true; $results = apply_filters( 'usces_filter_check_acting_return_results', $results ); break; } return $results; } function usces_check_acting_return_duplicate( $results = array() ) { global $wpdb; $acting = isset( $_GET['acting'] ) ? $_GET['acting'] : ''; switch( $acting ) { case 'epsilon': $trans_id = isset( $_REQUEST['trans_code'] ) ? $_REQUEST['trans_code'] : ''; $_REQUEST['absolute_trans_id'] = $_REQUEST['order_number']; break; case 'paypal': $trans_id = isset( $results['txn_id'] ) ? $results['txn_id'] : ''; $_REQUEST['absolute_trans_id'] = $trans_id; break; case 'paypal_ipn': $trans_id = isset( $_REQUEST['txn_id'] ) ? $_REQUEST['txn_id'] : ''; $_REQUEST['absolute_trans_id'] = $trans_id; break; case 'paypal_ec': $trans_id = isset( $_REQUEST['token'] ) ? $_REQUEST['token'] : ''; $_REQUEST['absolute_trans_id'] = $trans_id; break; case 'remise_card': $trans_id = isset( $_REQUEST['X-TRANID'] ) ? $_REQUEST['X-TRANID'] : ''; $_REQUEST['absolute_trans_id'] = $_REQUEST['X-S_TORIHIKI_NO']; break; case 'remise_conv': $trans_id = isset( $_REQUEST['X-JOB_ID'] ) ? $_REQUEST['X-JOB_ID'] : ''; $_REQUEST['absolute_trans_id'] = $_REQUEST['X-S_TORIHIKI_NO']; break; case 'jpayment_card': case 'jpayment_conv': case 'jpayment_bank': $trans_id = isset( $_REQUEST['gid'] ) ? $_REQUEST['gid'] : ''; $_REQUEST['absolute_trans_id'] = $trans_id; break; case 'telecom_card': $trans_id = isset( $_REQUEST['option'] ) ? $_REQUEST['option'] : ''; $_REQUEST['absolute_trans_id'] = isset( $_REQUEST['option'] ) ? $_REQUEST['option'] : $trans_id; break; case 'digitalcheck_card': case 'digitalcheck_conv': $trans_id = isset( $_REQUEST['SID'] ) ? $_REQUEST['SID'] : ''; $_REQUEST['absolute_trans_id'] = $trans_id; break; case 'mizuho_card': case 'mizuho_conv': $trans_id = isset( $_REQUEST['stran'] ) ? $_REQUEST['stran'] : ''; $_REQUEST['absolute_trans_id'] = $trans_id; break; default: $trans_id = apply_filters( 'usces_filter_check_acting_return_duplicate', '', $results ); $_REQUEST['absolute_trans_id'] = $trans_id; } $order_id = usces_get_order_id_by_trans_id( $trans_id ); if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { $_REQUEST['remote_addr'] = $_SERVER['REMOTE_ADDR']; } if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) { $_REQUEST['user_agent'] = $_SERVER['HTTP_USER_AGENT']; } return $order_id; } function usces_get_order_id_by_trans_id( $trans_id ) { global $wpdb; if ( empty( $trans_id ) ) { return false; } $table_meta_name = $wpdb->prefix . 'usces_order_meta'; $query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'trans_id', $trans_id ); $order_id = $wpdb->get_var( $query ); return $order_id; } function usces_dates_interconv( $date_str ) { $base_struc = array( 'd', 'm', 'Y' ); $date_str_parts = preg_split( '[/.-]', $date_str ); $date_elements = array(); $p_keys = array_keys( $base_struc ); foreach ( $p_keys as $p_key ) { if ( ! empty( $date_str_parts[ $p_key ] ) ) { $date_elements[ $base_struc[ $p_key ] ] = $date_str_parts[ $p_key ]; } else { return false; } } $dummy_ts = mktime( 0, 0, 0, $date_elements['m'], $date_elements['d'], $date_elements['Y'] ); return date( 'Y-m-d', $dummy_ts ); } function usces_register_action( $handle, $type, $key, $value, $function ) { global $usces_action; $usces_action[ $handle ] = array( 'type' => $type, 'key' => $key, 'value' => $value, 'function' => $function, ); } function usces_deregister_action( $handle ) { global $usces_action; unset( $usces_action[ $handle ] ); } function usces_update_check_admin( $result ) { $result = true; return $result; } function usces_setup_cod_ajax() { global $usces; // Verify nonce for security. check_ajax_referer( 'admin_setup', 'wc_nonce' ); // Check user capability. if ( ! current_user_can( 'wel_manage_setting' ) ) { wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'usces' ), 403 ); } $usces->options = get_option( 'usces' ); $message = ''; $_POST = $usces->stripslashes_deep_post( $_POST ); $usces->options['cod_type'] = isset( $_POST['cod_type'] ) ? $_POST['cod_type'] : 'fix'; if ( isset( $_POST['cod_fee'] ) ) { $usces->options['cod_fee'] = (int) $_POST['cod_fee']; } if ( 'fix' == $usces->options['cod_type'] ) { if ( isset( $_POST['cod_limit_amount'] ) ) { $usces->options['cod_limit_amount'] = (int) $_POST['cod_limit_amount']; if ( ! WCUtils::is_blank( $_POST['cod_limit_amount'] ) && 0 === (int) $_POST['cod_limit_amount'] ) { $message = __( 'There is the item where a value is dirty.', 'usces' ); } } // phpcs:ignore Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen } elseif ( 'change' == $usces->options['cod_type'] ) { if ( isset( $_POST['cod_first_amount'] ) ) { $usces->options['cod_first_amount'] = (int) $_POST['cod_first_amount']; if ( 0 === (int) $_POST['cod_first_amount'] ) { $message = __( 'There is the item where a value is dirty.', 'usces' ); } } if ( isset( $_POST['cod_limit_amount'] ) ) { $usces->options['cod_limit_amount'] = (int) $_POST['cod_limit_amount']; if ( ! WCUtils::is_blank( $_POST['cod_limit_amount'] ) && 0 === (int) $_POST['cod_limit_amount'] ) { $message = __( 'There is the item where a value is dirty.', 'usces' ); } } if ( isset( $_POST['cod_first_fee'] ) ) { $usces->options['cod_first_fee'] = (int) $_POST['cod_first_fee']; if ( 0 === (int) $_POST['cod_first_fee'] && '0' !== $_POST['cod_first_fee'] ) { $message = __( 'There is the item where a value is dirty.', 'usces' ); } } if ( isset( $_POST['cod_end_fee'] ) ) { $usces->options['cod_end_fee'] = (int) $_POST['cod_end_fee']; if ( 0 === (int) $_POST['cod_end_fee'] && '0' !== $_POST['cod_end_fee'] ) { $message = __( 'There is the item where a value is dirty.', 'usces' ); } } unset( $usces->options['cod_amounts'], $usces->options['cod_fees'] ); if ( isset( $_POST['cod_amounts'] ) ) { $cod_amounts_count = ( is_array( $_POST['cod_amounts'] ) ) ? count( $_POST['cod_amounts'] ) : 0; for ( $i = 0; $i < $cod_amounts_count; $i++ ) { $usces->options['cod_amounts'][ $i ] = (int) $_POST['cod_amounts'][ $i ]; $usces->options['cod_fees'][ $i ] = (int) $_POST['cod_fees'][ $i ]; if ( 0 === (int) $_POST['cod_amounts'][ $i ] || ( 0 === (int) $_POST['cod_fees'][ $i ] && '0' !== $_POST['cod_fees'][ $i ] ) ) { $message = __( 'There is the item where a value is dirty.', 'usces' ); } } } } if ( '' === $message ) { $r = 'success'; update_option( 'usces', $usces->options ); } else { $r = '' . $message . ''; } die( $r ); } function usces_get_order_acting_data( $rand ) { global $wpdb; $table_name = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "SELECT acc_str1 AS `sesid`, acc_value AS `order_data` FROM $table_name WHERE acc_key = %s", $rand ); $res = $wpdb->get_row( $query, ARRAY_A ); if ( $res == NULL ) { return false; } else { return $res; } } function usces_ordered_acting_data( $rand, $key = 'order_received' ) { global $usces, $wpdb; $datas = usces_get_order_acting_data( $rand ); $data = wel_safe_unserialize( $datas['order_data'] ); usces_log( 'usces_ordered_acting_data', 'acting_transaction.log' ); $data[ $key ] = 1; $data = serialize( $data ); $table_name = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "UPDATE $table_name SET acc_value = %s WHERE acc_type = %s AND acc_key = %s", $data, 'acting_data', $rand ); $res = $wpdb->query( $query ); } function usces_delete_ordered_acting_data( $rand ) { global $wpdb; $table_name = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "DELETE FROM $table_name WHERE acc_type = %s AND acc_key = %s", 'acting_data', $rand ); $res = $wpdb->query( $query ); } function usces_is_trusted_acting_data( $rand ) { global $usces, $wpdb; $datas = usces_get_order_acting_data( $rand ); $data = wel_safe_unserialize( $datas['order_data'] ); usces_log( 'usces_is_trusted_acting_data', 'acting_transaction.log' ); if ( isset( $data['propriety'] ) && $data['propriety'] && ! isset( $data['order_received'] ) ) { return true; } else { return false; } } function usces_get_filename( $path ) { $res = array(); if ( $handle = opendir( $path ) ) { while ( false !== ( $file = readdir( $handle ) ) ) { if ( '.' != $file && '..' != $file ) { $res[] = $file; } } closedir( $handle ); } return $res; } function usces_locales() { $res = array(); if ( $handle = opendir( USCES_PLUGIN_DIR . '/languages/' ) ) { while ( false !== ( $file = readdir( $handle ) ) ) { if ( '.' != $file && '..' != $file && preg_match( '/^usces-(.+)\.mo$/', $file, $matches ) ) { $res[] = $matches[1]; } } closedir( $handle ); } return $res; } function usces_get_local_language() { $locale = get_locale(); switch ( $locale ) { case '': case 'en': case 'en_US': $front_lang = 'en'; break; case 'ja': case 'ja_JP': $front_lang = 'ja'; break; default: $front_lang = 'others'; } return $front_lang; } function usces_get_base_country() { global $usces_settings; $wplang = defined( 'WPLANG' ) ? WPLANG : get_locale(); $locale = empty( $wplang ) ? 'en' : $wplang; $base_country = ( array_key_exists( $locale, $usces_settings['lungage2country'] ) ) ? $usces_settings['lungage2country'][ $locale ] : 'US'; $base_country = apply_filters( 'usces_filter_base_country', $base_country ); return $base_country; } function usces_get_local_addressform() { global $usces_settings; $base = usces_get_base_country(); $addressform = ( array_key_exists( $base, $usces_settings['addressform'] ) ) ? $usces_settings['addressform'][ $base ] : 'US'; $addressform = apply_filters( 'usces_filter_addressform', $addressform ); return $addressform; } function usces_get_local_target_market() { $base = usces_get_base_country(); return (array) $base; } function usces_get_apply_addressform( $country ) { global $usces_settings; return $usces_settings['addressform'][ $country ]; } function usces_remove_filter() { global $usces, $post; if ( is_single() && 'item' == $post->post_mime_type ) { remove_filter( 'the_content', array( &$usces, 'filter_itemPage' ) ); } elseif ( $usces->is_cart_page( $_SERVER['REQUEST_URI'] ) || $usces->is_inquiry_page( $_SERVER['REQUEST_URI'] ) ) { remove_action( 'the_post', array( &$usces, 'action_cartFilter' ) ); remove_filter( 'the_title', array( &$usces, 'filter_cartTitle' ) ,20 ); remove_filter( 'the_content', array( &$usces, 'filter_cartContent' ), 20 ); } elseif ( $usces->is_member_page( $_SERVER['REQUEST_URI'] ) ) { remove_action( 'the_post', array( &$usces, 'action_memberFilter' ) ); remove_filter( 'the_title', array( &$usces, 'filter_memberTitle' ), 20 ); remove_filter( 'the_content', array( &$usces, 'filter_memberContent' ) ,20 ); } else { remove_action( 'the_post', array( &$usces, 'goDefaultPage' ) ); } } function usces_reset_filter() { global $usces, $post; if ( is_single() && 'item' == $post->post_mime_type ) { add_filter( 'the_content', array( &$usces, 'filter_itemPage' ) ); } elseif ( $usces->is_cart_page( $_SERVER['REQUEST_URI'] ) || $usces->is_inquiry_page( $_SERVER['REQUEST_URI'] ) ) { add_action( 'the_post', array( &$usces, 'action_cartFilter' ) ); add_filter( 'the_title', array( &$usces, 'filter_cartTitle' ), 20 ); add_filter( 'the_content', array( &$usces, 'filter_cartContent' ), 20 ); } elseif ( $usces->is_member_page( $_SERVER['REQUEST_URI'] ) ) { add_action( 'the_post', array( &$usces, 'action_memberFilter' ) ); add_filter( 'the_title', array( &$usces, 'filter_memberTitle' ), 20 ); add_filter( 'the_content', array( &$usces, 'filter_memberContent' ), 20 ); } else { add_action( 'the_post', array( &$usces, 'goDefaultPage' ) ); } } function usces_get_wcex() { $wcex = array(); if ( defined( 'WCEX_DLSELLER_VERSION' ) ) { $wcex['DLSELLER'] = array( 'name' => 'Dl Seller', 'version' => WCEX_DLSELLER_VERSION, ); } if ( defined( 'WCEX_ITEM_LIST_LAYOUT_VERSION' ) ) { $wcex['ITEM_LIST_LAYOUT'] = array( 'name' => 'Item List Layout', 'version' => WCEX_ITEM_LIST_LAYOUT_VERSION, ); } if ( defined( 'WCEX_MOBILE_VERSION' ) ) { $wcex['MOBILE'] = array( 'name' => 'Mobile', 'version' => WCEX_MOBILE_VERSION, ); } if ( defined( 'WCEX_MULTIPRICE_VERSION' ) ) { $wcex['MULTIPRICE'] = array( 'name' => 'Multi Price', 'version' => WCEX_MULTIPRICE_VERSION, ); } if ( defined( 'WCEX_SLIDE_SHOWCASE_VERSION' ) ) { $wcex['SLIDE_SHOWCASE'] = array( 'name' => 'Slide Showcase', 'version' => WCEX_SLIDE_SHOWCASE_VERSION, ); } if ( defined( 'WCEX_WIDGET_CART_VERSION' ) ) { $wcex['WIDGET_CART'] = array( 'name' => 'Widget Cart', 'version' => WCEX_WIDGET_CART_VERSION, ); } return $wcex; } function usces_trackPageview_cart( $push ) { $push = array(); if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_cart'"; } else { $push[] = "'_trackPageview','/wc_cart'"; } return $push; } function usces_trackPageview_customer( $push ) { $push = array(); if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_customer'"; } else { $push[] = "'_trackPageview','/wc_customer'"; } return $push; } function usces_trackPageview_delivery( $push ) { $push = array(); if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_delivery'"; } else { $push[] = "'_trackPageview','/wc_delivery'"; } return $push; } function usces_trackPageview_confirm( $push ) { $push = array(); if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_confirm'"; } else { $push[] = "'_trackPageview','/wc_confirm'"; } return $push; } function usces_trackPageview_ordercompletion( $push ) { global $usces; if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_ordercompletion'"; } else { $push[] = "'_trackPageview','/wc_ordercompletion'"; } $sesdata = $usces->cart->get_entry(); if ( isset( $sesdata['order']['ID'] ) && ! empty( $sesdata['order']['ID'] ) ) { $order_id = $sesdata['order']['ID']; $data = $usces->get_order_data( $order_id, 'direct' ); $cart = wel_safe_unserialize( $data['order_cart'] ); $total_price = $usces->get_total_price( $cart ) + $data['order_discount'] - $data['order_usedpoint']; if ( $total_price < 0 ) { $total_price = 0; } $push[] = "'_addTrans', '" . $order_id . "', '" . esc_js( get_option( 'blogname' ) ) . "', '" . $total_price . "', '" . $data['order_tax'] . "', '" . $data['order_shipping_charge'] . "', '" . esc_js( $data['order_address1'] . $data['order_address2'] ) . "', '" . esc_js( $data['order_pref'] ) . "', '" . get_locale() . "'"; $cart_count = ( $cart && is_array( $cart ) ) ? count( $cart ) : 0; for ( $i = 0; $i < $cart_count; $i++ ) { $cart_row = $cart[ $i ]; $post_id = $cart_row['post_id']; $sku = urldecode( $cart_row['sku'] ); $quantity = $cart_row['quantity']; $itemName = $usces->getItemName( $post_id ); $skuPrice = $cart_row['price']; $cats = $usces->get_item_cat_genre_ids( $post_id ); if ( is_array( $cats ) ) { sort( $cats ); } $category = ( isset( $cats[0] ) ) ? get_cat_name( $cats[0] ) : ''; $push[] = "'_addItem', '" . $order_id . "', '" . esc_js( $sku ) . "', '" . esc_js( $itemName ) . "', '" . esc_js( $category ) . "', '" . $skuPrice . "', '" . $quantity . "'"; } $push[] = "'_trackTrans'"; } return $push; } function usces_trackPageview_error( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_error'"; } else { $push[] = "'_trackPageview','/wc_error'"; } return $push; } function usces_trackPageview_member( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_member'"; } else { $push[] = "'_trackPageview','/wc_member'"; } return $push; } function usces_trackPageview_login( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_login'"; } else { $push[] = "'_trackPageview','/wc_login'"; } return $push; } function usces_trackPageview_editmemberform( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_editmemberform'"; } else { $push[] = "'_trackPageview','/wc_editmemberform'"; } return $push; } function usces_trackPageview_newcompletion( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_newcompletion'"; } else { $push[] = "'_trackPageview','/wc_newcompletion'"; } return $push; } function usces_trackPageview_newmemberform( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_newmemberform'"; } else { $push[] = "'_trackPageview','/wc_newmemberform'"; } return $push; } function usces_trackPageview_deletemember( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_deletemember'"; } else { $push[] = "'_trackPageview','/wc_deletemember'"; } return $push; } function usces_trackPageview_search_item( $push ) { if ( defined( 'USCES_KEY' ) && defined( 'USCES_MULTI' ) && true == USCES_MULTI ) { $push[] = "'_trackPageview','/" . USCES_KEY . "wc_search_item'"; } else { $push[] = "'_trackPageview','/wc_search_item'"; } return $push; } function usces_get_essential_mark( $fielde, $data = NULL ) { global $usces_essential_mark; do_action( 'usces_action_essential_mark', $data, $fielde ); return $usces_essential_mark[ $fielde ]; } function uesces_get_admin_addressform( $type, $data, $customdata, $out = 'return' ) { global $usces, $usces_settings; $options = get_option( 'usces', array() ); $applyform = usces_get_apply_addressform( $options['system']['addressform'] ); $formtag = ''; switch ( $type ) { case 'member': $values = array( 'name1' => $data['mem_name1'], 'name2' => $data['mem_name2'], 'name3' => $data['mem_name3'], 'name4' => $data['mem_name4'], 'zipcode' => $data['mem_zip'], 'address1' => $data['mem_address1'], 'address2' => $data['mem_address2'], 'address3' => $data['mem_address3'], 'tel' => $data['mem_tel'], 'fax' => $data['mem_fax'], 'pref' => $data['mem_pref'], ); $country = $usces->get_member_meta_value( 'customer_country', $data['ID'] ); $values['country'] = ! empty( $country ) ? $country : usces_get_local_addressform(); break; case 'customer': $values = array( 'name1' => $data['order_name1'], 'name2' => $data['order_name2'], 'name3' => $data['order_name3'], 'name4' => $data['order_name4'], 'zipcode' => $data['order_zip'], 'address1' => $data['order_address1'], 'address2' => $data['order_address2'], 'address3' => $data['order_address3'], 'tel' => $data['order_tel'], 'fax' => $data['order_fax'], 'pref' => $data['order_pref'], ); $country = $usces->get_order_meta_value( 'customer_country', $data['ID'] ); $values['country'] = ! empty( $country ) ? $country : usces_get_local_addressform(); break; case 'delivery': $values = $data; break; } switch ( $applyform ) { case 'JP': $formtag .= usces_admin_custom_field_input( $customdata, $type, 'name_pre', 'return' ); $formtag .= ' ' . __( 'name', 'usces' ) . ' ' . __( 'furigana', 'usces' ) . ' '; $formtag .= usces_admin_custom_field_input( $customdata, $type, 'name_after', 'return' ); $formtag .= ' ' . __( 'Zip/Postal Code', 'usces' ) . ' ' . apply_filters( 'usces_filter_admin_addressform_zipcode', NULL, $type ) . ' ' . __( 'Country', 'usces' ) . ' ' . uesces_get_target_market_form( $type, $values['country'] ) . ' ' . __( 'Province', 'usces' ) . ' '; $formtag .= usces_pref_select( $type, $values ); $formtag .= ' '; $formtag .= ' ' . __( 'city', 'usces' ) . ' ' . __( 'numbers', 'usces' ) . ' ' . __( 'building name', 'usces' ) . ' ' . __( 'Phone number', 'usces' ) . ' ' . __( 'FAX number', 'usces' ) . ' '; $formtag .= usces_admin_custom_field_input( $customdata, $type, 'fax_after', 'return' ); break; case 'CN': $formtag .= usces_admin_custom_field_input( $customdata, $type, 'name_pre', 'return' ); $formtag .= ' ' . __( 'name', 'usces' ) . ' '; $formtag .= usces_admin_custom_field_input( $customdata, $type, 'name_after', 'return' ); $formtag .= ' ' . __( 'Country', 'usces' ) . ' ' . uesces_get_target_market_form( $type, $values['country'] ) . ' ' . __( 'State', 'usces' ) . ' '; $formtag .= usces_pref_select( $type, $values ); $formtag .= ' '; $formtag .= ' ' . __( 'city', 'usces' ) . ' ' . __( 'Address Line1', 'usces' ) . ' ' . __( 'Address Line2', 'usces' ) . ' ' . __( 'Zip', 'usces' ) . ' ' . __( 'Phone number', 'usces' ) . ' ' . __( 'FAX number', 'usces' ) . ' '; $formtag .= usces_admin_custom_field_input( $customdata, $type, 'fax_after', 'return' ); break; case 'US': default: $formtag .= usces_admin_custom_field_input( $customdata, $type, 'name_pre', 'return' ); $formtag .= ' ' . __( 'name', 'usces' ) . ' '; $formtag .= usces_admin_custom_field_input( $customdata, $type, 'name_after', 'return' ); $formtag .= ' ' . __( 'Address Line1', 'usces' ) . ' ' . __( 'Address Line2', 'usces' ) . ' ' . __( 'city', 'usces' ) . ' ' . __( 'State', 'usces' ) . ' '; $formtag .= usces_pref_select( $type, $values ); $formtag .= ' '; $formtag .= ' ' . __( 'Country', 'usces' ) . ' ' . uesces_get_target_market_form( $type, $values['country'] ) . ' ' . __( 'Zip', 'usces' ) . ' ' . __( 'Phone number', 'usces' ) . ' ' . __( 'FAX number', 'usces' ) . ' '; $formtag .= usces_admin_custom_field_input( $customdata, $type, 'fax_after', 'return' ); break; } $res = apply_filters( 'usces_filter_apply_admin_addressform', $formtag, $type, $data, $customdata ); if ( 'return' === $out ) { return $res; } else { echo $res; // no escape due to filter. } } function self_filter_apply_admin_addressform( $formtag, $type, $data, $customdata ) { if ( ! empty( $_SESSION['admin_admb_custom_field_member'] ) ) { $admb = $_SESSION['admin_admb_custom_field_member']; $formtag .= usces_admin_custom_field_input( $admb['data'], $admb['type'], 'fax_after', 'return' ); unset( $_SESSION['admin_admb_custom_field_member'] ); } return $formtag; } function uesces_get_target_market_form( $type, $selected, $out = 'return' ) { global $usces_settings; $options = get_option( 'usces', array() ); $res = '' . "\n"; if ( 'return' === $out ) { return wel_esc_script( $res ); } else { wel_esc_script_e( $res ); } } function usces_pref_select( $type, $values, $out = 'return' ) { global $usces, $usces_states; $country = empty( $values['country'] ) ? usces_get_base_country() : $values['country']; $options = get_option( 'usces', array() ); if ( ! in_array( $country, $options['system']['target_market'] ) ) { $country = $options['system']['target_market'][0]; } $pref = ( isset( $values['pref'] ) ) ? $values['pref'] : ''; $prefs = get_usces_states( $country ); $html = '\n"; $html = apply_filters( 'usces_filter_pref_field', $html, $type, $values, $country, $prefs ); if ( 'return' === $out ) { return $html; } else { echo $html; // no escape due to filter. } } function usces_is_tax_display() { global $usces; if ( isset( $usces->options['tax_display'] ) && 'deactivate' === $usces->options['tax_display'] ) { return false; } else { return true; } } function usces_get_tax_display() { global $usces; $tax_display = ( isset( $usces->options['tax_display'] ) ) ? $usces->options['tax_display'] : 'activate'; return $tax_display; } function usces_get_tax_mode() { global $usces; return $usces->options['tax_mode']; } function usces_get_tax_target() { global $usces; return $usces->options['tax_target']; } function usces_is_member_system() { global $usces; if ( 'activate' === $usces->options['membersystem_state'] ) { return true; } else { return false; } } function usces_is_member_system_point() { global $usces; if ( 'activate' === $usces->options['membersystem_point'] ) { return true; } else { return false; } } function usces_point_coverage() { global $usces; return $usces->options['point_coverage']; } function usces_shipping_country_option( $selected, $out = '' ) { global $usces_settings; $options = get_option( 'usces', array() ); $res = ''; foreach ( $usces_settings['country'] as $key => $value ) { if ( in_array( $key, $options['system']['target_market'], true ) ) { $res .= '\n"; } } wel_esc_script_e( $res ); } function usces_get_cart_button( $out = '' ) { global $usces; $res = ''; if ( $usces->use_js ) { $res .= '  '; if ( usces_is_cart() ) { $res .= ''; } } else { $res .= '' . __( 'continue shopping', 'usces' ) . '  '; if ( usces_is_cart() ) { $res .= ''; } } $res = apply_filters( 'usces_filter_get_cart_button', $res ); if ( 'return' === $out ) { return $res; } else { echo $res; // no escape due to filter. } } function usces_get_customer_button( $out = '' ) { global $usces, $member_regmode; $res = '  '; $button = '  '; $res .= apply_filters( 'usces_filter_customer_button', $button ); if ( usces_is_membersystem_state() && 'editmemberfromcart' !== $member_regmode && false === usces_is_login() ) { $res .= ''; } elseif ( usces_is_membersystem_state() && 'editmemberfromcart' === $member_regmode ) { $res .= ''; } $res = apply_filters( 'usces_filter_get_customer_button', $res ); if ( 'return' === $out ) { return $res; } else { echo $res; // no escape due to filter. } } function usces_delivery_secure_form( $out = '' ) { global $usces, $usces_entries, $usces_carts; $html = ''; include USCES_PLUGIN_DIR . '/includes/delivery_secure_form.php'; if ( 'return' === $out ) { return $html; } else { echo $html; // no escape due to filter. } } function usces_delivery_info_script( $out ='' ) { return; } function usces_delivery_info_scripts() { global $usces, $usces_entries, $usces_carts; $html = ''; if ( 'delivery' === $usces->page ) { include USCES_PLUGIN_DIR . '/includes/delivery_info_script.php'; } elseif ( usces_is_cart_page() && usces_is_login() ) { $paypal_ec = false; $payments = usces_get_system_option( 'usces_payment_method', 'sort' ); foreach ( (array) $payments as $id => $payment ) { if ( 'acting_paypal_ec' === $payment['settlement'] && 'activate' === $payment['use'] ) { $paypal_ec = true; break; } } if ( $paypal_ec ) { include USCES_PLUGIN_DIR . '/includes/delivery_info_script.php'; } } echo $html; // no escape due to filter. } function usces_get_entries() { global $usces, $usces_entries; $usces_entries = $usces->cart->get_entry(); if ( empty( $usces_entries['order']['ID'] ) && ! empty( $usces_entries['reserve']['pre_order_id'] ) ) { $usces_entries['order']['ID'] = $usces->get_order_id_by_pre_order_id( $usces_entries['reserve']['pre_order_id'] ); $usces->cart->set_order_entry( array( 'ID' => $usces_entries['order']['ID'] ) ); } } function usces_get_carts() { global $usces, $usces_carts; $usces_carts = $usces->cart->get_cart(); } function usces_get_members() { global $usces, $usces_members; $usces_members = $usces->get_member(); } function usces_error_message( $out = '' ) { global $usces; if ( 'return' === $out ) { return wel_esc_script( $usces->error_message ); } else { wel_esc_script_e( $usces->error_message ); } } function usces_url( $type, $out = '' ) { global $usces; switch ( $type ) { case 'cart': $url = USCES_CART_URL; break; case 'login': $url = USCES_LOGIN_URL; break; case 'member': $url = USCES_MEMBER_URL; break; case 'newmember': $url = USCES_NEWMEMBER_URL; break; case 'lostmemberpassword': $url = USCES_LOSTMEMBERPASSWORD_URL; break; case 'cartnonsession': $url = USCES_CART_NONSESSION_URL; break; } if ( 'return' === $out ) { return $url; } else { echo esc_url( $url ); } } function usces_total_price( $out = '' ) { global $usces; if ( 'return' === $out ) { return wel_esc_script( $usces->get_total_price() ); } else { wel_esc_script_e( $usces->get_total_price() ); } } function usces_completion_settlement( $out ='' ) { global $usces, $usces_entries; $html = ''; $template = apply_filters( 'usces_filter_completion_settlement', USCES_PLUGIN_DIR . '/includes/completion_settlement.php', $usces_entries ); require( $template ); if ( 'return' === $out ) { return $html; } else { echo $html; // no escape due to filter. } } function usces_purchase_button( $out ='' ) { global $usces, $usces_entries; $html = ''; include USCES_PLUGIN_DIR . '/includes/purchase_button.php'; if ( 'return' === $out ) { return $html; } else { echo $html; // no escape due to filter. } } function usces_get_member_regmode() { global $member_regmode; $member_regmode = isset( $_SESSION['usces_entry']['member_regmode'] ) ? $_SESSION['usces_entry']['member_regmode'] : 'none'; } function uesces_get_error_settlement( $out = '' ) { $res = ''; $res = apply_filters( 'usces_filter_get_error_settlement', $res ); if ( empty( $res ) ) { $res = __( 'Sorry, If you have any questions, please contact the administrator of the site.', 'usces' ); } if ( 'return' === $out ) { return $res; } else { echo $res; // no escape due to filter. } } function usces_page_name( $out = '' ) { global $usces; $page = ''; if ( empty( $usces->page ) ) { if ( $usces->is_cart_page( $_SERVER['REQUEST_URI'] ) ) { $page = 'cart'; } elseif ( $usces->is_member_page( $_SERVER['REQUEST_URI'] ) ) { $page = 'member'; } } else { $page = $usces->page; } $page = apply_filters( 'usces_filter_usces_page_name', $page ); if ( 'return' === $out ) { return esc_js( $page ); } else { echo esc_html( $page ); } } function usces_post_reg_orderdata( $order_id, $results ) { global $usces, $wpdb; $acting = isset( $_GET['acting'] ) ? $_GET['acting'] : ''; $data = array(); if ( $order_id ) { switch ( $acting ) { case 'epsilon': $trans_id = isset( $_REQUEST['trans_code'] ) ? $_REQUEST['trans_code'] : ''; break; case 'paypal_ipn': $trans_id = isset( $_REQUEST['txn_id'] ) ? $_REQUEST['txn_id'] : ''; break; case 'paypal': $trans_id = isset( $results['txn_id'] ) ? $results['txn_id'] : ''; break; case 'paypal_ec': $trans_id = isset( $_REQUEST['token'] ) ? $_REQUEST['token'] : ''; if ( isset( $results['settlement_id'] ) ) { $usces->set_order_meta_value( 'settlement_id', $results['settlement_id'], $order_id ); } if ( isset( $results['profile_id'] ) ) { $usces->set_order_meta_value( 'profile_id', $results['profile_id'], $order_id ); } break; case 'remise_card': $trans_id = isset( $_REQUEST['X-TRANID'] ) ? $_REQUEST['X-TRANID'] : ''; break; case 'remise_conv': $trans_id = isset( $_REQUEST['X-JOB_ID'] ) ? $_REQUEST['X-JOB_ID'] : ''; break; case 'jpayment_card': case 'jpayment_conv': case 'jpayment_bank': $trans_id = isset( $_REQUEST['gid'] ) ? $_REQUEST['gid'] : ''; break; case 'telecom_card': $trans_id = isset( $_REQUEST['sendid'] ) ? $_REQUEST['sendid'] : ''; break; case 'digitalcheck_card': case 'digitalcheck_conv': $trans_id = isset( $_REQUEST['SID'] ) ? $_REQUEST['SID'] : ''; break; case 'mizuho_card': case 'mizuho_conv': $trans_id = isset( $_REQUEST['stran'] ) ? $_REQUEST['stran'] : ''; break; default: if ( isset( $_REQUEST['FUKA'] ) && strstr( $_REQUEST['FUKA'], 'digitalcheck_card' ) ) { $trans_id = isset( $_REQUEST['SID'] ) ? $_REQUEST['SID'] : ''; } else { $trans_id = ''; } } if ( ! empty( $trans_id ) ) { $usces->set_order_meta_value( 'trans_id', $trans_id, $order_id ); } } } function usces_paypal_doecp( &$results ) { global $usces; $entry = $usces->cart->get_entry(); $cart = $usces->cart->get_cart(); $post_id = $cart[0]['post_id']; $charging_type = $usces->getItemChargingType( $post_id ); if ( 'continue' !== $charging_type ) { //通常購入. //Format the other parameters that were stored in the session from the previous calls. $token = urlencode( $_REQUEST['token'] ); $paymentType = apply_filters( 'usces_filter_paypal_ec_paymentaction', 'Sale' ); $currencyCodeType = urlencode( $usces->get_currency_code() ); $payerID = urlencode( $_REQUEST['PayerID'] ); $serverName = urlencode( $_SERVER['SERVER_NAME'] ); $nvpstr = '&TOKEN=' . $token . '&PAYERID=' . $payerID . '&PAYMENTREQUEST_0_PAYMENTACTION=' . $paymentType . '&PAYMENTREQUEST_0_CURRENCYCODE=' . $currencyCodeType . '&IPADDRESS=' . $serverName; $item_total_price = 0; $i = 0; foreach ( $cart as $cart_row ) { $nvpstr .= '&L_PAYMENTREQUEST_0_NAME' . $i . '=' . urlencode( $usces->getItemName( $cart_row['post_id'] ) ) . '&L_PAYMENTREQUEST_0_AMT' . $i . '=' . usces_crform( $cart_row['price'], false, false, 'return', false ) . '&L_PAYMENTREQUEST_0_NUMBER' . $i . '=' . urlencode( $usces->getItemCode( $cart_row['post_id'] ) ) . ' ' . $cart_row['sku'] . '&L_PAYMENTREQUEST_0_QTY' . $i . '=' . $cart_row['quantity']; $options = ( ! empty( $cart_row['options'] ) ) ? $cart_row['options'] : array(); if ( is_array( $options ) && count( $options ) > 0 ) { $optstr = ''; foreach ( $options as $key => $value ) { if ( ! empty( $key ) ) { $key = urldecode( $key ); $value = wel_safe_maybe_unserialize( $value ); if ( is_array( $value ) ) { $c = ''; $optstr .= $key . ' : '; foreach ( $value as $v ) { $optstr .= $c.urldecode( $v ); $c = ', '; } $optstr .= "\r\n"; } else { $optstr .= $key . ' : ' . urldecode( $value ) . "\r\n"; } } } if ( '' !== $optstr ) { if ( 60 < mb_strlen( $optstr, 'UTF-8' ) ) { $optstr = mb_substr( $optstr, 0, 60, 'UTF-8' ) . '...'; } $nvpstr .= '&L_PAYMENTREQUEST_0_DESC' . $i . '=' . urlencode( $optstr ); } } $item_total_price += ( $cart_row['price'] * $cart_row['quantity'] ); $i++; } if ( ! empty( $entry['order']['discount'] ) ) { $nvpstr .= '&L_PAYMENTREQUEST_0_NAME' . $i . '=' . urlencode( __( 'Campaign discount', 'usces' ) ) . '&L_PAYMENTREQUEST_0_AMT' . $i . '=' . usces_crform( $entry['order']['discount'], false, false, 'return', false ); $item_total_price += $entry['order']['discount']; $i++; } if ( ! empty( $entry['order']['usedpoint'] ) ) { $nvpstr .= '&L_PAYMENTREQUEST_0_NAME' . $i . '=' . urlencode( __( 'Used points', 'usces' ) ) . '&L_PAYMENTREQUEST_0_AMT' . $i . '=' . usces_crform( $entry['order']['usedpoint'] * (-1), false, false, 'return', false ); $item_total_price -= $entry['order']['usedpoint']; $i++; } $nvpstr .= '&PAYMENTREQUEST_0_ITEMAMT=' . usces_crform( $item_total_price, false, false, 'return', false ) . '&PAYMENTREQUEST_0_SHIPPINGAMT=' . usces_crform( $entry['order']['shipping_charge'], false, false, 'return', false ) . '&PAYMENTREQUEST_0_AMT=' . usces_crform( $entry['order']['total_full_price'], false, false, 'return', false ) ; if ( ! empty( $entry['order']['cod_fee'] ) ) { $nvpstr .= '&PAYMENTREQUEST_0_HANDLINGAMT=' . usces_crform( $entry['order']['cod_fee'], false, false, 'return', false ); } if ( ! empty( $entry['order']['tax'] ) ) { $nvpstr .= '&PAYMENTREQUEST_0_TAXAMT=' . usces_crform( $entry['order']['tax'], false, false, 'return', false ); } $nvpstr .= '&PAYMENTREQUEST_0_AMT=' . usces_crform( $entry['order']['total_full_price'], false, false, 'return', false ); $nvpstr = apply_filters( 'usces_filter_usces_paypal_doecp', $nvpstr, $charging_type ); if ( 'shipped' === $usces->getItemDivision( $post_id ) ) { $name = urlencode( $entry['delivery']['name2'] . ' ' . $entry['delivery']['name1'] ); $address2 = urlencode( $entry['delivery']['address2'] ); $address3 = urlencode( $entry['delivery']['address3'] ); $address1 = urlencode( $entry['delivery']['address1'] ); $pref = urlencode( $entry['delivery']['pref'] ); $country = ( ! empty( $entry['delivery']['country'] ) ) ? $entry['delivery']['country'] : usces_get_base_country(); $country_code = apply_filters( 'usces_filter_paypalec_shiptocountrycode', $country ); if ( 'TW' === $country_code ) { $city = $address1; $address1 = $pref; $pref = $city; } $zip = $entry['delivery']['zipcode']; $tel = ltrim( str_replace( '-', '', $entry['delivery']['tel'] ), '0' ); if ( 'US' !== $country_code && 'CA' !== $country_code ) { $nvpstr .= '&PAYMENTREQUEST_0_SHIPTONAME=' . $name . '&PAYMENTREQUEST_0_SHIPTOSTREET=' . $address2 . '&PAYMENTREQUEST_0_SHIPTOSTREET2=' . $address3 . '&PAYMENTREQUEST_0_SHIPTOCITY=' . $address1 . '&PAYMENTREQUEST_0_SHIPTOSTATE=' . $pref . '&PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE=' . $country_code . '&PAYMENTREQUEST_0_SHIPTOZIP=' . $zip . '&PAYMENTREQUEST_0_SHIPTOPHONENUM=' . $tel; } } $usces->paypal->setMethod( 'DoExpressCheckoutPayment' ); $usces->paypal->setData( $nvpstr ); $res = $usces->paypal->doExpressCheckout(); $resArray = $usces->paypal->getResponse(); $ack = strtoupper( $resArray['ACK'] ); if ( 'SUCCESS' === $ack || 'SUCCESSWITHWARNING' === $ack ) { $transactionId = $resArray['PAYMENTINFO_0_TRANSACTIONID']; // ' Unique transaction ID of the payment. Note: If the PaymentAction of the request was Authorization or Order, this value is your AuthorizationID for use with the Authorization & Capture APIs. $results['settlement_id'] = $transactionId; $results['payment_status'] = isset( $resArray['PAYMENTINFO_0_PAYMENTSTATUS'] ) ? $resArray['PAYMENTINFO_0_PAYMENTSTATUS'] : ''; $results['pending_reason'] = isset( $resArray['PAYMENTINFO_0_PENDINGREASON'] ) ? $resArray['PAYMENTINFO_0_PENDINGREASON'] : ''; } else { //Display a user friendly Error on the page using any of the following error information returned by PayPal. $ErrorCode = urldecode( $resArray['L_ERRORCODE0'] ); $ErrorShortMsg = urldecode( $resArray['L_SHORTMESSAGE0'] ); $ErrorLongMsg = urldecode( $resArray['L_LONGMESSAGE0'] ); $ErrorSeverityCode = urldecode( $resArray['L_SEVERITYCODE0'] ); usces_log( 'PayPal : DoExpressCheckoutPayment API call failed. Error Code:[' . $ErrorCode . '] Error Severity Code:[' . $ErrorSeverityCode . '] Short Error Message:' . $ErrorShortMsg . ' Detailed Error Message:' . $ErrorLongMsg, 'acting_transaction.log' ); if ( '10486' === $ErrorCode ) { $options = get_option( 'usces', array() ); $acting_opts = $options['acting_settings']['paypal']; $query = http_build_query( $_REQUEST ); $payPalURL = $acting_opts['paypal_url'] . '?cmd=_express-checkout&' . $query; header( 'Location: ' . $payPalURL ); exit; } $log = array( 'acting' => 'paypal_ec', 'key' => '(empty key)', 'result' => $ack, 'data' => $resArray, ); usces_save_order_acting_error( $log ); return false; } } else { if ( ! apply_filters( 'usces_pre_create_recurring_payments_profile', true ) ) { return false; } //定期支払い. $paymentAmount = usces_crform( $entry['order']['total_full_price'], false, false, 'return', false ); $token = urlencode( $_REQUEST['token'] ); $currencyCodeType = urlencode( $usces->get_currency_code() ); $profileStartDate = date( 'Y-m-d', dlseller_first_charging( $post_id, 'time' ) ) . 'T01:01:01Z'; $billingPeriod = 'Month';// or "Day", "Week", "SemiMonth", "Year". $billingFreq = $usces->getItemFrequency( $post_id ); $desc = urlencode( usces_make_agreement_description( $cart, $entry['order']['total_full_price'] ) ); $totalBillingCycles = ( empty( $dlitem['dlseller_interval'] ) ) ? '' : '&TOTALBILLINGCYCLES=' . urlencode( $dlitem['dlseller_interval'] ); $nvpstr = '&TOKEN=' . $token . '&AMT=' . $paymentAmount . '&CURRENCYCODE=' . $currencyCodeType . '&PROFILESTARTDATE=' . $profileStartDate . '&BILLINGPERIOD=' . $billingPeriod . '&BILLINGFREQUENCY=' . $billingFreq . '&DESC=' . $desc . $totalBillingCycles; $nvpstr = apply_filters( 'usces_filter_usces_paypal_doecp', $nvpstr, $charging_type ); $usces->paypal->setMethod( 'CreateRecurringPaymentsProfile' ); $usces->paypal->setData( $nvpstr ); $res = $usces->paypal->doExpressCheckout(); $resArray = $usces->paypal->getResponse(); $ack = strtoupper( $resArray['ACK'] ); if ( 'SUCCESS' === $ack || 'SUCCESSWITHWARNING' === $ack ) { $profileid = $resArray['PROFILEID']; $results['settlement_id'] = $profileid; $results['profile_id'] = $profileid; $results['profile_status'] = isset( $resArray['PROFILESTATUS'] ) ? $resArray['PROFILESTATUS'] : ''; } else { //Display a user friendly Error on the page using any of the following error information returned by PayPal. $ErrorCode = urldecode( $resArray['L_ERRORCODE0'] ); $ErrorShortMsg = urldecode( $resArray['L_SHORTMESSAGE0'] ); $ErrorLongMsg = urldecode( $resArray['L_LONGMESSAGE0'] ); $ErrorSeverityCode = urldecode( $resArray['L_SEVERITYCODE0'] ); usces_log( 'PayPal : CreateRecurringPaymentsProfile API call failed. Error Code:[' . $ErrorCode . '] Error Severity Code:[' . $ErrorSeverityCode . '] Short Error Message:' . $ErrorShortMsg .' Detailed Error Message:' . $ErrorLongMsg, 'acting_transaction.log' ); $log = array( 'acting' => 'paypal_ec', 'key' => '(empty key)', 'result' => $ack, 'data' => $resArray, ); usces_save_order_acting_error( $log ); return false; } } return true; } function usces_make_agreement_description( $cart, $amt ) { global $usces; $cart_row = $cart[0]; $quantity = $cart_row['quantity']; $itemName = $usces->getItemName( $cart_row['post_id'] ); if ( 50 < mb_strlen( $itemName, 'UTF-8' ) ) { $itemName = mb_substr( $itemName, 0, 50, 'UTF-8' ) . '...'; } $amt = usces_crform( $amt, true, false, 'return', true ); $desc = $itemName . ' ' . __( 'Quantity', 'usces' ) . ':' . $quantity . ' ' . $amt; return( $desc ); } function usces_get_send_out_date() { global $usces; $bus_day_arr = ( isset( $usces->options['business_days'] ) ) ? $usces->options['business_days'] : false; $bus_day_arr = apply_filters( 'usces_filter_business_days_bus_day_arr', $bus_day_arr ); list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = preg_split( '([^0-9])', current_time( 'mysql' ) ); if ( ! is_array( $bus_day_arr ) ) { $today_bus_flag = 1; } else { $today_bus_flag = isset( $bus_day_arr[ (int) $today_year ][ (int) $today_month ][ (int) $today_day ] ) ? (int) $bus_day_arr[ (int) $today_year ][ (int) $today_month ][ (int) $today_day ] : 1; } // get the time limit addition. $limit_hour = ( ! empty( $usces->options['delivery_time_limit']['hour'] ) ) ? $usces->options['delivery_time_limit']['hour'] : false; $limit_min = ( ! empty( $usces->options['delivery_time_limit']['min'] ) ) ? $usces->options['delivery_time_limit']['min'] : false; if ( false === $hour || false === $minute ) { $time_limit_addition = false; } elseif ( ( $hour . ':' . $minute . ':' . $second ) > ( $limit_hour . ':' . $limit_min . ':00' ) ) { $time_limit_addition = 1; } else { $time_limit_addition = 0; } // get the shipping indication in cart. $cart = $usces->cart->get_cart(); $shipping_indication = apply_filters( 'usces_filter_shipping_indication', $usces->options['usces_shipping_indication'] ); $shipping = 0; $indication_flag = true; $cart_count = ( $cart && is_array( $cart ) ) ? count( $cart ) : 0; $shipping_rule_ex = apply_filters( 'usces_filter_item_shipping_rule_ex', 9 ); for ( $i = 0; $i < $cart_count; $i++ ) { $cart_row = $cart[ $i ]; $post_id = $cart_row['post_id']; $itemShipping = (int) $usces->getItemShipping( $post_id ); if ( 0 === $itemShipping || $shipping_rule_ex === $itemShipping ) { $indication_flag = false; break; } if ( $shipping < $itemShipping ) { $shipping = $itemShipping; } } $indication_incart = ( $indication_flag ) ? $shipping_indication[ $shipping ] : false; $indication_incart = apply_filters( 'usces_filter_indication_incart', $indication_incart, $shipping_indication, $shipping, $cart ); // get the send out date. $sendout_num = 0; if ( $today_bus_flag ) { if ( $time_limit_addition ) { $sendout_num += 1; } if ( false !== $indication_incart ) { $sendout_num += $indication_incart; } } else { if ( false !== $indication_incart ) { $sendout_num += $indication_incart; } } $holiday = 0; for ( $i = 0; $i <= $sendout_num; $i++ ) { list( $yyyy, $mm, $dd ) = explode( '-', date( 'Y-m-d', mktime( 0, 0, 0, (int) $today_month, ( $today_day + $i ), (int) $today_year ) ) ); if ( isset( $bus_day_arr[ (int) $yyyy ][ (int) $mm ][ (int) $dd ] ) && ! $bus_day_arr[ (int) $yyyy ][ (int) $mm ][ (int) $dd ] ) { $holiday++; $sendout_num++; } if ( 100 < $sendout_num ) { break; } } list( $send_y, $send_m, $send_d ) = explode( '-', date( 'Y-m-d', mktime( 0, 0, 0, (int) $today_month, ( $today_day + $sendout_num ), (int) $today_year ) ) ); $res = array( 'today_bus_flag' => $today_bus_flag, 'time_limit_addition' => $time_limit_addition, 'indication_incart' => $indication_incart, 'holiday' => $holiday, 'sendout_num' => $sendout_num, 'sendout_date' => array( 'year' => $send_y, 'month' => $send_m, 'day' => $send_d, ), ); return $res; } function usces_action_footer_comment() { echo "\n"; } function usces_set_acting_notification_time( $key ) { global $wpdb; $tableName = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "SELECT ID FROM $tableName WHERE acc_type = %s AND acc_key = %s", 'notification_time', $key ); $res = $wpdb->get_var( $query ); if ( $res ) { return; } $query = $wpdb->prepare( "INSERT INTO $tableName (acc_key, acc_type, acc_num1) VALUES (%s, %s, %d)", $key, 'notification_time', time() ); $res = $wpdb->query( $query ); } function usces_check_notification_time( $key, $time ) { global $wpdb; $tableName = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "SELECT acc_num1 FROM $tableName WHERE acc_type = %s AND acc_key = %s", 'notification_time', $key ); $res = $wpdb->get_var( $query ); if ( ! $res ) { return false; } $past = time() - $res; if ( $time > $past ) { return true; } else { return false; } } function usces_is_same_itemcode( $post_id, $item_code ) { global $wpdb, $usces; $item_table = usces_get_tablename( 'usces_item' ); $res = $wpdb->get_col( $wpdb->prepare( "SELECT `post_id` FROM {$item_table} LEFT JOIN {$wpdb->posts} ON `ID` = `post_id` WHERE `itemCode` = %s AND `post_id` <> %d AND `post_status` IN ('pending', 'publish', 'draft', 'private', 'future')", $item_code, $post_id ) ); if ( ! $res ) { return false; } else { return $res; } } function usces_update_sku( $post_id, $sku_code, $fieldname, $value ) { $sku = wel_get_sku( $post_id, $sku_code, false ); $sku[ $fieldname ] = $value; $meta_id = $sku['meta_id']; $res = wel_update_sku_data_by_id( $meta_id, $post_id, $sku ); if ( ! $res ) { return false; } else { return true; } } function usces_get_non_zerostoc_items() { global $wpdb, $usces; $item_table = usces_get_tablename( 'usces_item' ); $skus_table = usces_get_tablename( 'usces_skus' ); $res = $wpdb->get_results( $wpdb->prepare( "SELECT `ID`, `itemCode` AS `code`, `itemName` AS `name` FROM {$wpdb->posts} AS `post` LEFT JOIN {$item_table} AS `item` ON `ID` = item.post_id LEFT JOIN {$skus_table} AS `sku` ON `ID` = sku.post_id WHERE post_mime_type = %s AND post_type = %s AND post_status <> %s AND sku.stocknum = %s GROUP BY ID", 'item', 'post', 'trash', '0' ), ARRAY_A ); return $res; } function usces_get_stocs() { global $wpdb, $usces; $status = array(); $sku_table = $wpdb->prefix . 'usces_skus'; $stocks = $wpdb->get_col( $wpdb->prepare( "SELECT stock FROM {$wpdb->posts} LEFT JOIN {$sku_table} ON ID = post_id WHERE post_mime_type = %s AND post_type = %s AND post_status <> %s", 'item', 'post', 'trash' ) ); if ( ! $stocks ) { return $status; } foreach ( (array) $stocks as $value ) { $status[] = (string) $value; } return array_count_values( $status ); } function usces_get_deco_order_id( $order_id ) { global $usces; $dec_order_id = $usces->get_order_meta_value( 'dec_order_id', $order_id ); if ( ! $dec_order_id ) { $options = get_option( 'usces', array() ); $prefix = $options['system']['dec_orderID_prefix']; $prefix = apply_filters( 'usces_filter_get_deco_order_id_prefix', $prefix ); $dec_order_id = $prefix . usces_make_deco_order_id( $order_id ); } return $dec_order_id; } function usces_make_deco_order_id( $order_id = null ) { global $wpdb; $options = get_option( 'usces', array() ); if ( 0 === (int) $options['system']['dec_orderID_flag'] ) { if ( ! $order_id ) { $dec_order_id = str_pad( 0, $options['system']['dec_orderID_digit'], '0', STR_PAD_LEFT ); } else { $dec_order_id = str_pad( $order_id, $options['system']['dec_orderID_digit'], '0', STR_PAD_LEFT ); } } else { $order_meta = usces_get_tablename( 'usces_order_meta' ); $verify_time = apply_filters( 'usces_filter_deco_order_id_verify_time', 100 ); for ( $olimit = 0; $olimit <= $verify_time; $olimit++ ) { $ukey = usces_get_key( $options['system']['dec_orderID_digit'] ); $ores = $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM {$order_meta} WHERE meta_key = %s AND meta_value = %s LIMIT 1", 'dec_order_id', $ukey ) ); if ( ! $ores ) { break; } } $dec_order_id = $ukey; } $dec_order_id = apply_filters( 'usces_filter_make_deco_order_id', $dec_order_id ); return $dec_order_id; } function usces_get_gp_price( $post_id, $p, $quant ) { global $usces; $GpN1 = $usces->getItemGpNum1( $post_id ); $GpN2 = $usces->getItemGpNum2( $post_id ); $GpN3 = $usces->getItemGpNum3( $post_id ); $GpD1 = $usces->getItemGpDis1( $post_id ); $GpD2 = $usces->getItemGpDis2( $post_id ); $GpD3 = $usces->getItemGpDis3( $post_id ); if ( empty( $GpN1 ) || empty( $GpD1 ) ) { $realprice = $p; } elseif ( ( ! empty( $GpN1 ) && ! empty( $GpD1 ) ) && ( empty( $GpN2 ) || empty( $GpD2 ) ) ) { if ( $quant >= $GpN1 ) { $realprice = wel_gp_price_discount( $p, $GpD1 ); } else { $realprice = $p; } } elseif ( ( ! empty( $GpN1 ) && ! empty( $GpD1 ) ) && ( ! empty( $GpN2 ) && ! empty( $GpD2 ) ) && ( empty( $GpN3 ) || empty( $GpD3 ) ) ) { if ( $quant >= $GpN2 ) { $realprice = wel_gp_price_discount( $p, $GpD2 ); } elseif ( $quant >= $GpN1 && $quant < $GpN2 ) { $realprice = wel_gp_price_discount( $p, $GpD1 ); } else { $realprice = $p; } } elseif ( ( ! empty( $GpN1 ) && ! empty( $GpD1 ) ) && ( ! empty( $GpN2 ) && ! empty( $GpD2 ) ) && ( ! empty( $GpN3 ) && ! empty( $GpD3 ) ) ) { if ( $quant >= $GpN3 ) { $realprice = wel_gp_price_discount( $p, $GpD3 ); } elseif ( $quant >= $GpN2 && $quant < $GpN3 ) { $realprice = wel_gp_price_discount( $p, $GpD2 ); } elseif ( $quant >= $GpN1 && $quant < $GpN2 ) { $realprice = wel_gp_price_discount( $p, $GpD1 ); } else { $realprice = $p; } } else { $realprice = $p; } $realprice = apply_filters( 'usces_filter_get_gp_price', $realprice, $post_id, $p, $quant ); return $realprice; } function usces_is_complete_settlement( $payment_name, $status = '' ) { $complete = false; $options = get_option( 'usces', array() ); if ( 0 === (int) $options['point_assign'] ) { $complete = true; } else { $payments = usces_get_system_option( 'usces_payment_method', 'name' ); if ( isset( $payments[ $payment_name ]['settlement'] ) ) { switch( $payments[ $payment_name ]['settlement'] ) { case 'acting': if ( false !== strpos( $status, 'pending' ) ) { break; } case 'acting_remise_card': case 'acting_jpayment_card': case 'acting_paypal_ec': case 'acting_telecom_card': case 'acting_digitalcheck_card': case 'acting_mizuho_card': case 'acting_anotherlane_card': case 'acting_veritrans_card': case 'COD': $complete = true; } } } $complete = apply_filters( 'usces_filter_is_complete_settlement', $complete, $payment_name, $status ); return $complete; } function usces_action_acting_getpoint( $order_id, $add = true ) { global $usces, $wpdb; if ( ! apply_filters( 'usces_action_acting_getpoint_switch', true, $order_id, $add ) ) { return; } $options = get_option( 'usces', array() ); if ( 0 !== (int) $options['point_assign'] ) { if ( 'activate' === $usces->options['membersystem_state'] && 'activate' === $usces->options['membersystem_point'] ) { $table_name = $wpdb->prefix . 'usces_order'; $mquery = $wpdb->prepare( "SELECT mem_id, order_getpoint FROM $table_name WHERE ID = %d", $order_id ); $values = $wpdb->get_row( $mquery, ARRAY_A ); $mem_id = $values['mem_id']; $getpoint = $values['order_getpoint']; if ( ! empty( $mem_id ) && 0 < $getpoint ) { $calc = ( $add ) ? '+' : '-'; $member_table_name = usces_get_tablename( 'usces_member' ); $mquery = $wpdb->prepare( "UPDATE $member_table_name SET mem_point = (mem_point ".$calc." %d) WHERE ID = %d", $getpoint, $mem_id ); $wpdb->query( $mquery ); if ( ! empty( $_SESSION['usces_member']['point'] ) ) { $mquery = $wpdb->prepare( "SELECT mem_point FROM $member_table_name WHERE ID = %d", $mem_id ); $point = $wpdb->get_var( $mquery ); $_SESSION['usces_member']['point'] = $point; } } } } do_action( 'usces_action_acting_getpoint', $order_id, $add ); } function usces_restore_point( $mem_id, $point ) { global $wpdb; if ( ! apply_filters( 'usces_action_restore_point_switch', true, $mem_id, $point ) ) { return; } $member_table_name = usces_get_tablename( 'usces_member' ); $query = $wpdb->prepare( "UPDATE $member_table_name SET mem_point = (mem_point - %d) WHERE ID = %d", $point, $mem_id ); $wpdb->query( $query ); } function usces_set_free_csv( $customer ) { $free_csv = ""; if ( ! WCUtils::is_blank( $customer['name1'] ) ) { $free_csv = "LAST_NAME=" . mb_convert_encoding( $customer['name1'], 'SJIS', 'UTF-8' ) . ",FIRST_NAME=" . mb_convert_encoding( $customer['name2'], 'SJIS', 'UTF-8' ) . ",TEL=" . str_replace( "-", "", $customer['tel'] ) . ",MAIL=" . $customer['mailaddress1']; $free_csv = base64_encode( $free_csv ); } return $free_csv; } function usces_get_itemopt_filed( $post_id, $sku, $opt ) { global $usces; $sku = urlencode( $sku ); $optcode = urlencode( $opt['name'] ); $name = $opt['name']; $means = (int) $opt['means']; $essential = (int) $opt['essential']; $session_value = isset( $_SESSION['usces_singleitem']['itemOption'][ $post_id ][ $sku ][ $optcode ] ) ? $_SESSION['usces_singleitem']['itemOption'][ $post_id ][ $sku ][ $optcode ] : NULL; $opt['value'] = usces_change_line_break( $opt['value'] ); $html = ''; switch ( $means ) { case 0: //Single-select. case 1: //Multi-select. $selects = explode( "\n", $opt['value'] ); $multiple = ( 0 === $means ) ? '' : ' multiple'; $multiple_array = ( 0 === $means ) ? '' : '[]'; $html .= "\n\n"; break; case 2: //Text. $html .= "\n\n"; break; case 3: //Radio-button. $selects = explode( "\n", $opt['value'] ); $i = 0; foreach ( (array) $selects as $v ) { $v = trim( $v ); if ( $v === $session_value ) { $checked = ' checked="checked"'; } else { $checked = ''; } $html .= "\t\n"; $i++; } break; case 4: //Check-box. $selects = explode( "\n", $opt['value'] ); $session_arr = is_array( $session_value ) ? $session_value : array(); $i = 0; foreach ( (array) $selects as $v ) { $v = trim( $v ); if ( in_array( $v, $session_arr, true ) ) { $checked = ' checked="checked"'; } else { $checked = ''; } $html .= "\t\n"; $i++; } break; case 5: //Text-area. $html .= "\n\n"; break; } $html = apply_filters( 'usces_get_itemopt_filed', $html, $post_id, $sku, $opt ); return $html; } function usces_delete_order_check( $order_id ) { $res = apply_filters( 'usces_filter_delete_order_check', true, $order_id ); return $res; } function usces_delete_member_check( $member_id ) { $res = apply_filters( 'usces_filter_delete_member_check', true, $member_id ); return $res; } function usces_delete_member_check_front( $member_id ) { $res = apply_filters( 'usces_filter_delete_member_check_front', true, $member_id ); return $res; } function usces_itempage_admin_bar() { global $wp_admin_bar, $post; if ( is_single() && usces_is_item() ) { $wp_admin_bar->remove_menu( 'edit' ); $ref = urlencode( site_url() . '/wp-admin/admin.php?page=usces_itemedit' ); $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => __( 'Edit item', 'usces' ), 'href' => site_url() . '/wp-admin/admin.php?page=usces_itemedit&action=edit&post=' . $post->ID . '&usces_referer=' . $ref ) ); } } function usces_rand( $digit = 10 ) { $num = str_repeat( '9', $digit ); $rand = apply_filters( 'usces_filter_rand_value', sprintf( '%0' . $digit . 'd', mt_rand( 1, (int) $num ) ), $num ); return $rand; } function usces_get_cr_symbol() { global $usces, $usces_settings; $cr = $usces->options['system']['currency']; list( $code, $decimal, $point, $seperator, $symbol ) = $usces_settings['currency'][ $cr ]; return $symbol; } function usces_make_option_field( $materials, $cart ) { extract( $materials ); /* $materials = compact( 'i', 'cart_row', 'post_id', 'sku', 'sku_code', 'quantity', 'options', 'advance', 'itemCode', 'itemName', 'cartItemName', 'skuPrice', 'stock', 'red', 'pictid', 'order_id' ); */ $option_fields = usces_get_opts( $post_id, 'sort' ); $field = '
' . "\n"; $field .= '' . "\n"; $field .= '
' . "\n"; echo apply_filters( 'usces_filter_order_edit_form_row', $field, $cart, $materials ); } function usces_get_itemOption( $field_data, $materials, $label = '#default#' ) { global $usces; extract( $materials ); /* $materials = compact( 'i', 'cart_row', 'post_id', 'sku', 'sku_code', 'quantity', 'options', 'advance', 'itemCode', 'itemName', 'cartItemName', 'skuPrice', 'stock', 'red', 'pictid', 'order_id' ); */ $opt_value = array(); foreach ( $options as $opt_value ) { if ( $field_data['name'] === $opt_value['meta_key'] ) { $cartmeta_id = $opt_value['cartmeta_id']; $name = $opt_value['meta_key']; $value = $opt_value['meta_value']; $means = (int) $field_data['means']; $essential = (int) $field_data['essential']; break; } } if ( ! $opt_value ) { return ''; } if ( empty( $name ) ) { return ''; } if ( '#default#' === $label ) { $label = $name; } $field_data['value'] = usces_change_line_break( $field_data['value'] ); $html = ''; $name = esc_attr( $name ); $label = esc_attr( $label ); $html .= '' . "\n"; switch ( $means ) { case 0: //Single-select. $selects = explode( "\n", $field_data['value'] ); $value = wel_safe_maybe_unserialize( $value ); $check_value = array(); if ( ! is_array( $value ) ) { $check_value = (array) $value; } $diff = array_diff( $check_value, $selects ); if ( ! empty( $diff ) ) { $value_str = ''; foreach ( $check_value as $mv ) { $value_str .= $mv . ' & '; } $value_str = trim( $value_str, ' & ' ); $html .= ':' . esc_html( $value_str ) . '' . "\n"; } else { $html .= '' . "\n"; } break; case 1: //Multi-select. $selects = explode( "\n", $field_data['value'] ); $value = wel_safe_maybe_unserialize( $value ); if ( ! is_array( $value ) ) { $value = (array) $value; } $diff = array_diff( (array) $value, $selects ); if ( ! empty( $diff ) ) { $value_str = ''; foreach ( $value as $mv ) { $value_str .= $mv . ' & '; } $value_str = trim( $value_str, ' & ' ); $html .= ':' . esc_html( $value_str ) . '' . "\n"; } else { $html .= '' . "\n"; } break; case 2: //Text. $html .= '' . "\n"; break; case 3: //Radio-button. $selects = explode( "\n", $field_data['value'] ); $value = wel_safe_maybe_unserialize( $value ); if ( ! is_array( $value ) ) { $value = (array) $value; } $diff = array_diff( $value, $selects ); if ( ! empty( $diff ) && ! empty( $diff[0] ) ) { $value_str = ''; foreach ( $value as $mv ) { $value_str .= $mv . ' & '; } $value_str = trim( $value_str, ' & ' ); $html .= ':' . esc_html( $value_str ) . '' . "\n"; } else { $i = 0; foreach ( $selects as $v ) { $v = trim( $v ); $checked = ''; foreach ( $value as $ov ) { if ( $v == $ov ) { $checked = ' checked="checked"'; break; } } $html .= '\n"; $i++; } } break; case 4: //Check-box. $selects = explode( "\n", $field_data['value'] ); $value = wel_safe_maybe_unserialize( $value ); if ( ! is_array( $value ) ) { $value = (array) $value; } $diff = array_diff( (array) $value, $selects ); if ( isset( $diff[0] ) && ! empty( $diff[0] ) ) { $value_str = ''; foreach ( $value as $mv ) { $value_str .= $mv . ' & '; } $value_str = trim( $value_str, ' & ' ); $html .= ':' . esc_html( $value_str ) . '' . "\n"; } else { $i = 0; foreach ( $selects as $v ) { $v = trim( $v ); $opval = urlencode( $v ); $val_str = isset( $value_arr[ $opval ] ) ? $value_arr[ $opval ] : ''; if ( in_array( $v, (array) $value ) ) { $checked = ' checked="checked"'; } else { $checked = ''; } $html .= '\n"; $i++; } } break; case 5: //Text-area. $html .= '' . "\n"; break; } $html = apply_filters( 'usces_filter_get_itemOption', $html, $opt_value, $post_id ); return $html; } function usces_update_ordercart_meta_value( $cartmeta_id, $value ) { global $wpdb; if ( ! $cartmeta_id ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $query = $wpdb->prepare( "UPDATE $ordercart_meta_table SET meta_value = %s WHERE cartmeta_id = %d", $value, $cartmeta_id ); $res = $wpdb->query( $query ); return $res; } function usces_set_ordercart_meta_value( $type, $cart_id, $key, $value ) { global $wpdb; if ( ! $type || ! $cart_id || ! $key || ! $value ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $query = $wpdb->prepare( "SELECT cartmeta_id FROM $ordercart_meta_table WHERE cart_id = %d AND meta_type = %s AND meta_key = %s ", $cart_id, $type, $key ); $res1 = $wpdb->get_var( $query ); if ( $res1 ) { $query = $wpdb->prepare( "UPDATE $ordercart_meta_table SET meta_value = %s WHERE cart_id = %d AND meta_type = %s AND meta_key = %s", $value, $cart_id, $type, $key ); $res2 = $wpdb->query( $query ); } else { $query = $wpdb->prepare( "INSERT INTO $ordercart_meta_table ( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, %s, %s, %s )", $cart_id, $type, $key, $value ); $res2 = $wpdb->query( $query ); } return $res2; } function usces_get_ordercart_meta( $type, $cart_id, $key = '' ) { global $wpdb; if ( ! $cart_id ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; if ( '' !== $key ) { $query = $wpdb->prepare( "SELECT cartmeta_id, meta_key, meta_value FROM $ordercart_meta_table WHERE cart_id = %d AND meta_type = %s AND meta_key = %s ORDER BY cartmeta_id", $cart_id, $type, $key ); } else { $query = $wpdb->prepare( "SELECT cartmeta_id, meta_key, meta_value FROM $ordercart_meta_table WHERE cart_id = %d AND meta_type = %s ORDER BY cartmeta_id", $cart_id, $type ); } $res = $wpdb->get_results( $query, ARRAY_A ); return $res; } function usces_add_ordercart_meta_value( $type, $cart_id, $key, $value ) { global $wpdb; if ( ! $type || ! $cart_id || ! $key || ! $value ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $query = $wpdb->prepare( "INSERT INTO $ordercart_meta_table ( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, %s, %s, %s )", $cart_id, $type, $key, $value ); $res = $wpdb->query( $query ); return $res; } function usces_get_ordercart_meta_value( $type, $cart_id, $key = '' ) { global $wpdb; if ( ! $cart_id ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; if ( '' !== $key ) { $query = $wpdb->prepare( "SELECT meta_value FROM $ordercart_meta_table WHERE cart_id = %d AND meta_type = %s AND meta_key = %s ORDER BY cartmeta_id", $cart_id, $type, $key ); } else { $query = $wpdb->prepare( "SELECT meta_value FROM $ordercart_meta_table WHERE cart_id = %d AND meta_type = %s ORDER BY cartmeta_id", $cart_id, $type ); } $res = $wpdb->get_var( $query ); return $res; } function usces_get_ordercart_meta_by_id( $cartmeta_id ) { global $wpdb; if ( ! $cartmeta_id ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $query = $wpdb->prepare( "SELECT * FROM $ordercart_meta_table WHERE cartmeta_id = %d", $cartmeta_id ); $res = $wpdb->get_row( $query, ARRAY_A ); return $res; } function usces_get_post_id_by_cartmeta_id( $cartmeta_id ) { global $wpdb; if ( ! $cartmeta_id ) { return 0; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $ordercart_table = $wpdb->prefix . 'usces_ordercart'; $query = $wpdb->prepare( "SELECT cart_id FROM $ordercart_meta_table WHERE cartmeta_id = %d", $cartmeta_id ); $cart_id = $wpdb->get_var( $query ); if ( ! $cartmeta_id ) { return 0; } $query = $wpdb->prepare( "SELECT post_id FROM $ordercart_table WHERE cart_id = %d", $cart_id ); $post_id = $wpdb->get_var( $query ); return $post_id; } function usces_delete_ordercart_meta_by_id( $cartmeta_id ) { global $wpdb; if ( ! $cartmeta_id ) { return; } $ordercart_meta_table = $wpdb->prefix . 'usces_ordercart_meta'; $query = $wpdb->prepare( "DELETE FROM $ordercart_meta_table WHERE cartmeta_id = %d", $cartmeta_id ); $res = $wpdb->query( $query ); return $res; } function usces_make_advance_value( $advance, $cart_row ) { $value = ''; $advance_value = array(); foreach ( $advance as $row ) { $advance_value[] = array( $row['meta_key'] => $row['meta_value'] ); } $value = apply_filters( 'usces_filter_order_edit_form_row_advance_value', serialize( $advance_value ), $advance, $cart_row ); return $value; } function usces_get_ordercart_row( $order_id, $cart = array() ) { global $usces; if ( empty( $cart ) ) { $cart = usces_get_ordercartdata( $order_id ); } $reduced_taxrate = usces_is_reduced_taxrate( $order_id ); if ( $reduced_taxrate ) { $usces_tax = Welcart_Tax::get_instance(); } ob_start(); foreach ( $cart as $i => $cart_row ) { $ordercart_id = $cart_row['cart_id']; $post_id = $cart_row['post_id']; $sku = $cart_row['sku']; $sku_code = $cart_row['sku_code']; $quantity = $cart_row['quantity']; $options = usces_get_ordercart_meta( 'option', $ordercart_id ); $advance = usces_get_ordercart_meta( 'advance', $ordercart_id ); $applicable_taxrate = ( $reduced_taxrate ) ? $usces_tax->get_ordercart_applicable_taxrate( $ordercart_id, $post_id, $sku_code ) : ''; if ( 'reduced' === $applicable_taxrate ) { $reduced_taxrate_mark = '' . $usces_tax->reduced_taxrate_mark.''; } else { $reduced_taxrate_mark = ''; } $itemCode = $cart_row['item_code']; $itemName = $cart_row['item_name']; $cartItemName = $usces->getCartItemName_byOrder( $cart_row ); $skuPrice = $cart_row['price']; $stock = $usces->getItemZaiko( $post_id, $sku_code ); $stockid = $usces->getItemZaikoStatusId( $post_id, $sku_code ); $red = ( 1 < $stockid ) ? 'class="signal_red"' : ''; $pictid = (int) $usces->get_mainpictid( $itemCode ); $materials = compact( 'i', 'cart_row', 'post_id', 'sku', 'sku_code', 'quantity', 'options', 'advance', 'itemCode', 'itemName', 'cartItemName', 'skuPrice', 'stock', 'red', 'pictid', 'order_id' ); $advance_value = usces_make_advance_value( $advance, $cart_row ); $cart_thumbnail = ( ! empty( $pictid ) ) ? wp_get_attachment_image( $pictid, array( 80, 80 ), true ) : usces_get_attachment_noimage( array( 80, 80 ), $itemCode ); $cart_thumbnail = apply_filters( 'usces_filter_cart_thumbnail', $cart_thumbnail, $post_id, $pictid, $i, $cart_row ); $index_column = apply_filters( 'usces_filter_admin_cart_index', ( $i + 1 ), $materials ); $post_status = get_post_status( $post_id ); if ( $post_status && in_array( $post_status, array( 'publish', 'draft', 'private' ), true ) ) { $item_editpage = admin_url( 'admin.php?page=usces_itemedit&action=edit&post=' . $post_id . '&usces_referer=' . urlencode( site_url() . '/wp-admin/admin.php?page=usces_orderlist&order_action=edit&order_id=' . $order_id ) ); } else { $item_editpage = ''; } ?>

 

> add_cap( 'wel_publish_products' ); $admin_role->add_cap( 'wel_others_products' ); $admin_role->add_cap( 'wel_manage_order' ); $admin_role->add_cap( 'wel_manage_setting' ); $editor_role = get_role( 'editor' ); $editor_role->add_cap( 'wel_publish_products' ); $editor_role->add_cap( 'wel_others_products' ); $editor_role->add_cap( 'wel_manage_order' ); $editor_role->add_cap( 'wel_manage_setting' ); $wc_management_role = get_role( 'wc_management' ); $wc_management_role->add_cap( 'wel_publish_products' ); $wc_management_role->add_cap( 'wel_others_products' ); $wc_management_role->add_cap( 'wel_manage_order' ); $wc_author_role = get_role( 'wc_author' ); $wc_author_role->add_cap( 'wel_publish_products' ); $wc_author_role->add_cap( 'wel_others_products' ); $author_role = get_role( 'author' ); $author_role->add_cap( 'wel_publish_products' ); } function usces_add_role() { if ( ! get_role( 'wc_author' ) ) { $capabilities = array( 'moderate_comments' => 1, 'manage_categories' => 1, 'manage_links' => 1, 'upload_files' => 1, 'unfiltered_html' => 1, 'edit_posts' => 1, 'edit_others_posts' => 1, 'edit_published_posts' => 1, 'publish_posts' => 1, 'edit_pages' => 1, 'read' => 1, 'level_4' => 1, 'level_3' => 1, 'level_2' => 1, 'level_1' => 1, 'level_0' => 1, 'edit_others_pages' => 1, 'edit_published_pages' => 1, 'publish_pages' => 1, 'delete_pages' => 1, 'delete_others_pages' => 1, 'delete_published_pages' => 1, 'delete_posts' => 1, 'delete_others_posts' => 1, 'delete_published_posts' => 1, 'delete_private_posts' => 1, 'edit_private_posts' => 1, 'read_private_posts' => 1, 'delete_private_pages' => 1, 'edit_private_pages' => 1, 'read_private_pages' => 1, ); add_role( 'wc_author', __( 'Editor (no management authority)', 'usces' ), $capabilities ); } if ( ! get_role( 'wc_management' ) ) { $capabilities = array( 'moderate_comments' => 1, 'manage_categories' => 1, 'manage_links' => 1, 'upload_files' => 1, 'unfiltered_html' => 1, 'edit_posts' => 1, 'edit_others_posts' => 1, 'edit_published_posts' => 1, 'publish_posts' => 1, 'edit_pages' => 1, 'read' => 1, 'level_5' => 1, 'level_4' => 1, 'level_3' => 1, 'level_2' => 1, 'level_1' => 1, 'level_0' => 1, 'edit_others_pages' => 1, 'edit_published_pages' => 1, 'publish_pages' => 1, 'delete_pages' => 1, 'delete_others_pages' => 1, 'delete_published_pages' => 1, 'delete_posts' => 1, 'delete_others_posts' => 1, 'delete_published_posts' => 1, 'delete_private_posts' => 1, 'edit_private_posts' => 1, 'read_private_posts' => 1, 'delete_private_pages' => 1, 'edit_private_pages' => 1, 'read_private_pages' => 1, ); add_role( 'wc_management', __( 'Editor (no setting authority)', 'usces' ), $capabilities ); } remove_role( 'wpsc_anonymous' ); } function usces_get_admin_user_level() { global $current_user; wp_get_current_user(); $levels = array(); foreach ( $current_user->allcaps as $key => $value ) { $parts = explode( '_', $key ); if ( 'level' == $parts[0] ) { $levels[] = $parts[1]; } } if ( empty( $levels ) ) { return 0; } else { rsort( $levels ); return $levels[0]; } } function usces_make_lost_key() { return uniqid( 'wc' , true ); } function usces_store_lostmail_key( $lost_mail, $lost_key ) { global $wpdb; $date = substr( current_time( 'mysql' ), 0, 10 ); $table = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "INSERT INTO {$table} (acc_key, acc_type, acc_value, acc_date) VALUES (%s, %s, %s, %s)", $lost_mail, 'lostkey', $lost_key, $date ); $res = $wpdb->query( $query ); return $res; } function usces_remove_lostmail_key( $lost_mail, $lost_key ) { global $wpdb; $table = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "DELETE FROM {$table} WHERE acc_key = %s AND acc_type = %s AND acc_value = %s", $lost_mail, 'lostkey', $lost_key ); $res = $wpdb->query( $query ); return $res; } function usces_check_lostkey( $lost_mail, $lost_key ) { global $wpdb; $table = $wpdb->prefix . 'usces_access'; $query = $wpdb->prepare( "SELECT ID FROM {$table} WHERE acc_key = %s AND acc_type = %s AND acc_value = %s", $lost_mail, 'lostkey', $lost_key ); $res = $wpdb->get_col( $query ); return $res; } function usces_clearup_lostkey() { global $wpdb; $table = $wpdb->prefix . 'usces_access'; $date = date( 'Y-m-d', current_time( 'timestamp' ) ); $query = $wpdb->prepare( "DELETE FROM {$table} WHERE acc_type = %s AND acc_date < %s", 'lostkey', $date ); $res = $wpdb->query( $query ); do_action( 'usces_clearup_lostkey', $res ); return $res; } function usces_clearup_acting_data() { global $wpdb; $table = $wpdb->prefix . 'usces_access'; $date = date( 'Y-m-d', ( current_time( 'timestamp' ) - 86400 * 30 ) ); $query = $wpdb->prepare( "DELETE FROM {$table} WHERE acc_type = %s AND acc_date < %s", 'acting_data', $date ); $res = $wpdb->query( $query ); do_action( 'usces_clearup_acting_data', $res ); return $res; } function usces_clearup_acting_log() { global $usces, $wpdb; $table = $wpdb->prefix . 'usces_log'; $date = date( 'Y-m-d 00:00:00', ( current_time( 'timestamp' ) - 86400 * 30 ) ); $query = $wpdb->prepare( "DELETE FROM {$table} WHERE ( log_type = %s OR log_type = %s ) AND datetime < %s", 'acting_data', 'acting_error', $date ); $res = $wpdb->query( $query ); do_action( 'usces_clearup_acting_log', $res ); } function usces_acting_key() { global $usces; $acting_key = usces_rand(); return $acting_key; } function usces_change_order_receipt( $order_id, $flag ) { global $wpdb, $usces; $table_name = $wpdb->prefix . 'usces_order'; if ( 'receipted' === $flag ) { $mquery = $wpdb->prepare( "UPDATE $table_name SET order_status = CASE WHEN LOCATE('noreceipt', order_status) > 0 THEN REPLACE(order_status, 'noreceipt', 'receipted') WHEN LOCATE('receipted', order_status) > 0 THEN order_status ELSE CONCAT('receipted,', order_status ) END WHERE ID = %d", $order_id ); $res = $wpdb->query( $mquery ); $gmtdate = get_date_from_gmt( gmdate( 'Y-m-d H:i:s', time() ) ); $usces->set_order_meta_value( 'receipted_date', $gmtdate, $order_id ); } elseif ( 'noreceipt' === $flag ) { $mquery = $wpdb->prepare( "UPDATE $table_name SET order_status = CASE WHEN LOCATE('receipted', order_status) > 0 THEN REPLACE(order_status, 'receipted', 'noreceipt') WHEN LOCATE('noreceipt', order_status) > 0 THEN order_status ELSE CONCAT('noreceipt,', order_status ) END WHERE ID = %d", $order_id ); $res = $wpdb->query( $mquery ); $usces->del_order_meta( 'receipted_date', $order_id ); } return $res; } function usces_localized_name( $familly_name, $given_name, $out = '' ) { global $usces_settings, $usces; $familly_name = preg_replace( '/[\r\n]/', '', $familly_name ); $given_name = preg_replace( '/[\r\n]/', '', $given_name ); $options = get_option( 'usces', array() ); $form = $options['system']['addressform']; if ( $usces_settings['nameform'][ $form ] ) { $res = $given_name . ' ' . $familly_name; } else { $res = $familly_name . ' ' . $given_name; } if ( 'return' === $out ) { return esc_html( $res ); } else { echo esc_html( $res ); } } function usces_get_hash( $str, $salt = NULL, $type = 0 ) { //$hash = md5( trim( $str ) ); $hash_algos = ( defined( 'USCES_HASH_ALGOS' ) ) ? USCES_HASH_ALGOS : 'md5'; $secret_key = ( defined( 'USCES_SECRET_KEY' ) ) ? USCES_SECRET_KEY : ''; if ( $secret_key ) { $hash = hash_hmac( $hash_algos, $str.$salt, $secret_key ); } else { $hash = hash( $hash_algos, $str.$salt ); } $args = compact( 'str', 'salt', 'type' ); return apply_filters( 'usces_filter_get_hash', $hash, $args ); } function usces_get_salt( $mem_key, $type = 0 ) { global $wpdb; $salt = ''; if ( defined( 'USCES_SALT' ) && '1' === USCES_SALT ) { if ( 1 === $type ) { $salt = uniqid(); } else { if ( ! empty( $mem_key ) ) { $member_table = usces_get_tablename( 'usces_member' ); $member_meta_table = usces_get_tablename( 'usces_member_meta' ); if ( is_numeric( $mem_key ) ) { $salt = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM $member_meta_table WHERE member_id = %d AND meta_key = %s", $mem_key, 'mem_salt' ) ); } else { $salt = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM $member_table AS `member` INNER JOIN $member_meta_table AS `meta` ON member.ID = meta.member_id AND meta.meta_key = %s WHERE mem_email = %s", 'mem_salt', $mem_key ) ); } } } } $args = compact( 'mem_key', 'type' ); return apply_filters( 'usces_filter_get_salt', $salt, $args ); } function usces_get_member_reinforcement() { if ( defined( 'WCEX_DLSELLER' ) ) { $dlseller_options = get_option( 'dlseller' ); if ( isset( $dlseller_options['dlseller_member_reinforcement'] ) && 'on' === $dlseller_options['dlseller_member_reinforcement'] ) { return true; } } return false; } function usces_have_shipped( $cart = NULL ) { global $usces; if ( empty( $cart ) ) { $cart = $usces->cart->get_cart(); } $division = ''; foreach ( (array) $cart as $cart_row ) { if ( 'shipped' === $usces->getItemDivision( $cart_row['post_id'] ) ) { $division = 'shipped'; break; } } if ( 'shipped' === $division ) { return true; } else { return false; } } function usces_have_continue_charge( $cart = NULL ) { global $usces; if ( empty( $cart ) ) { $cart = $usces->cart->get_cart(); } $charging_type = 'once'; foreach ( (array) $cart as $cart_row ) { if ( 'continue' === $usces->getItemChargingType( $cart_row['post_id'] ) ) { $charging_type = 'continue'; break; } } if ( 'continue' === $charging_type ) { return true; } else { return false; } } function usces_have_regular_order() { if ( defined( 'WCEX_AUTO_DELIVERY' ) ) { return wcad_have_regular_order(); } return false; } function usces_have_member_regular_order( $member_id ) { if ( defined( 'WCEX_AUTO_DELIVERY' ) ) { return wcad_have_member_regular_order( $member_id ); } return false; } function usces_have_member_continue_order( $member_id ) { if ( defined( 'WCEX_DLSELLER' ) && function_exists( 'dlseller_have_member_continue_order' ) ) { return dlseller_have_member_continue_order( $member_id ); } return false; } function usces_is_available_point() { global $usces; $res = true; if ( defined( 'WCEX_DLSELLER' ) && function_exists( 'dlseller_have_continue_charge' ) ) { if ( dlseller_have_continue_charge() ) { $res = false; } } return $res; } function usces_get_link_key( $results ) { global $usces; $linkkey = '(empty key)'; if ( isset( $_REQUEST['X-S_TORIHIKI_NO'] ) ) { $linkkey = $_REQUEST['S_TORIHIKI_NO']; //remise. } elseif ( isset( $_REQUEST['acting'] ) && ( 'jpayment_card' === $_REQUEST['acting'] || 'jpayment_conv' === $_REQUEST['acting'] || 'jpayment_bank' === $_REQUEST['acting'] ) && isset( $_REQUEST['cod'] ) ) { $linkkey = $_REQUEST['cod']; //ROBOT PAYMENT (Cloud Payment,J-Payment). } elseif ( isset( $_REQUEST['txn_type'] ) && 'pro_hosted' === $_REQUEST['txn_type'] && isset( $_REQUEST['custom'] ) ) { $linkkey = $_REQUEST['custom']; //PayPal Webpayment Plus. } elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) ) { $linkkey = $_REQUEST['SID']; //Payment for (MetapsPayment,paydesign,digitalcheck). } elseif ( isset( $_REQUEST['acting'] ) && ( 'mizuho_card' === $_REQUEST['acting'] || 'mizuho_conv' === $_REQUEST['acting'] ) && isset( $_REQUEST['stran'] ) ) { $linkkey = $_REQUEST['stran']; //mizuho. } elseif ( isset( $_REQUEST['SiteId'] ) && $usces->options['acting_settings']['anotherlane']['siteid'] === $_REQUEST['SiteId'] && isset( $_REQUEST['TransactionId'] ) ) { $linkkey = $_REQUEST['TransactionId']; //AnotherLane. } elseif ( isset( $_REQUEST['acting'] ) && ( 'veritrans_card' === $_REQUEST['acting'] || 'veritrans_conv' === $_REQUEST['acting'] ) && isset( $_REQUEST['orderId'] ) ) { $linkkey = $_REQUEST['orderId']; //Veritrans. } elseif ( isset( $_REQUEST['acting'] ) && 'telecom_card' === $_REQUEST['acting'] && isset( $_REQUEST['acting_return'] ) && isset( $_REQUEST['option'] ) ) { $linkkey = $_REQUEST['option']; //telecom credit. } elseif ( isset( $_REQUEST['acting'] ) && 'epsilon' === $_REQUEST['acting'] && isset( $_REQUEST['acting_return'] ) && isset( $_REQUEST['order_number'] ) ) { $linkkey = $_REQUEST['order_number']; //epsilon. } $linkkey = apply_filters( 'usces_filter_get_link_key', $linkkey, $results ); return $linkkey; } function usces_erase_emoji( $str ) { if ( $str ) { $newstr = preg_replace( '/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/', '', $str ); $str = apply_filters( 'usces_filter_erase_emoji', $newstr, $str ); } return $str; } function usces_is_reduced_taxrate( $order_id = '' ) { global $usces; if ( empty( $order_id ) ) { $reduced = $usces->is_reduced_taxrate(); } else { $condition = usces_get_order_condition( $order_id ); $reduced = ( isset( $condition['applicable_taxrate'] ) && 'reduced' === $condition['applicable_taxrate'] ) ? true : false; } return $reduced; } function usces_get_order_condition( $order_id ) { global $wpdb; $order_condition = $wpdb->get_var( $wpdb->prepare( "SELECT order_condition FROM {$wpdb->prefix}usces_order WHERE ID = %d", $order_id ) ); return wel_safe_maybe_unserialize( $order_condition ); } function usces_tax_rounding_off( $tax, $tax_method = '' ) { global $usces; if ( empty( $tax_method ) ) { $tax_method = $usces->options['tax_method']; } $decimal = $usces->get_currency_decimal(); $decipad = (int) str_pad( '1', $decimal + 1, '0', STR_PAD_RIGHT ); switch ( $tax_method ) { case 'cutting': if ( 0 < $tax ) { $tax = floor( (float) $tax * $decipad ) / $decipad; } break; case 'bring': if ( 0 < $tax ) { $tax = ceil( floatval( ( $tax . '' ) ) * $decipad ) / $decipad; } break; case 'rounding': if ( 0 < $decimal ) { if ( 0 < $tax ) { $tax = round( (float) $tax, $decimal ); } } else { if ( 0 < $tax ) { $tax = round( (float) $tax ); } } break; } return $tax; } function usces_is_required_field( $name ) { global $usces_essential_mark; $usces_essential_mark = apply_filters( 'usces_filter_essential_mark', $usces_essential_mark ); if ( empty( $usces_essential_mark[ $name ] ) ) { return false; } else { return true; } } function usces_get_tablename( $target ) { global $wpdb; $prefix = ''; if ( defined( 'WELCART_DB_PREFIX' ) ) { $prefix = WELCART_DB_PREFIX; } if ( ! $prefix ) { $prefix = $wpdb->prefix; } $tablename = $prefix . $target; $tablename = apply_filters( 'usces_filter_get_tablename', $tablename, $target ); return $tablename; } function usces_convert_zipcode( $zipcode ) { $zipcode = mb_convert_kana( $zipcode, 'a' ); $zipcode = str_replace( 'ー', '-', $zipcode ); $zipcode = str_replace( '―', '-', $zipcode ); $zipcode = str_replace( '-', '-', $zipcode ); return $zipcode; } function usces_get_sku( $post_id, $sku_code ) { global $usces; $skus = $usces->get_skus( $post_id, 'code' ); $sku = isset( $skus[ $sku_code ] ) ? $skus[ $sku_code ] : array(); return $sku; } function usces_get_wp_environment() { global $wp_version, $wpdb; $permalink_structure = get_option( 'permalink_structure' ); // WP memory limit. $wp_memory_limit = usces_let_to_num( WP_MEMORY_LIMIT ); if ( function_exists( 'memory_get_usage' ) ) { $wp_memory_limit = max( $wp_memory_limit, usces_let_to_num( @ini_get( 'memory_limit' ) ) ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged } return array( 'environment' => array( 'wp_version' => $wp_version, 'home_url' => get_option( 'home' ), 'site_url' => get_option( 'siteurl' ), 'site_language' => get_bloginfo( 'language' ), 'timezone' => get_option( 'timezone_string' ), 'number_of_media' => array_sum( (array) wp_count_attachments( array( 'image/jpeg', 'image/gif', 'image/png' ) ) ), 'number_of_post' => get_option( 'posts_per_page' ), 'blog_public' => get_option( 'blog_public' ), 'thumbnail_size' => array( 'width' => get_option( 'thumbnail_size_w' ), 'height' => get_option( 'thumbnail_size_h' ), ), 'medium_size' => array( 'width' => get_option( 'medium_size_w' ), 'height' => get_option( 'medium_size_h' ), ), 'large_size' => array( 'width' => get_option( 'large_size_w' ), 'height' => get_option( 'large_size_h' ), ), 'permalinks' => ( empty( $permalink_structure ) ) ? __( 'Plain', 'usces' ) : __( 'Custom structure', 'usces' ) . " ( {$permalink_structure} )", 'wp_multisite' => is_multisite(), 'wp_memory_limit' => $wp_memory_limit, 'wp_debug_mode' => ( defined( 'WP_DEBUG' ) && WP_DEBUG ), 'server' => $_SERVER['SERVER_SOFTWARE'], 'php_version' => phpversion(), 'php_post_max_size' => ini_get( 'post_max_size' ), 'php_max_execution_time' => ini_get( 'max_execution_time' ), 'php_max_input_vars' => ini_get( 'max_input_vars' ), 'curl_version' => curl_version(), 'mysql_version' => $wpdb->dbh->server_info, 'upload_max_filesize' => ini_get( 'upload_max_filesize' ), ), 'theme' => usces_get_theme_info(), 'active_plugins' => usces_get_active_plugins(), 'inactive_plugins' => usces_get_inactive_plugins(), ); } /** * Get a list of plugins active on the site. * * @return array */ function usces_get_active_plugins() { if ( ! function_exists( 'get_plugin_data' ) ) { return array(); } $active_plugins = (array) get_option( 'active_plugins', array() ); if ( is_multisite() ) { $network_activated_plugins = array_keys( get_site_option( 'active_sitewide_plugins', array() ) ); $active_plugins = array_merge( $active_plugins, $network_activated_plugins ); } $active_plugins_data = array(); foreach ( $active_plugins as $plugin ) { $data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); $active_plugins_data[] = usces_format_plugin_data( $plugin, $data ); } return $active_plugins_data; } /** * Get a list of inplugins active on the site. * * @return array */ function usces_get_inactive_plugins() { if ( ! function_exists( 'get_plugins' ) ) { return array(); } $plugins = get_plugins(); $active_plugins = (array) get_option( 'active_plugins', array() ); if ( is_multisite() ) { $network_activated_plugins = array_keys( get_site_option( 'active_sitewide_plugins', array() ) ); $active_plugins = array_merge( $active_plugins, $network_activated_plugins ); } $plugins_data = array(); foreach ( $plugins as $plugin => $data ) { if ( in_array( $plugin, $active_plugins, true ) ) { continue; } $plugins_data[] = usces_format_plugin_data( $plugin, $data ); } return $plugins_data; } /** * Format plugin data, including data on updates, into a standard format. * * @since 3.6.0 * @param string $plugin Plugin directory/file. * @param array $data Plugin data from WP. * @return array Formatted data. */ function usces_format_plugin_data( $plugin, $data ) { if ( ! function_exists( 'get_plugin_updates' ) ) { return array(); } $available_updates = get_plugin_updates(); $version_latest = $data['Version']; // Find latest version. if ( isset( $available_updates[ $plugin ]->update->new_version ) ) { $version_latest = $available_updates[ $plugin ]->update->new_version; } return array( 'plugin' => $plugin, 'name' => $data['Name'], 'version' => $data['Version'], 'version_latest' => $version_latest, 'url' => $data['PluginURI'], 'author_name' => $data['AuthorName'], 'author_url' => esc_url_raw( $data['AuthorURI'] ), 'network_activated' => $data['Network'], ); } /** * Get info on the current active theme, info on parent theme (if presnet) * and a list of template overrides. * * @return array */ function usces_get_theme_info() { $active_theme = wp_get_theme(); $themes_update = get_site_transient( 'update_themes' ); if ( is_child_theme() ) { $parent_theme = wp_get_theme( $active_theme->template ); $parent_theme_info = array( 'parent_name' => $parent_theme->name, 'parent_version' => $parent_theme->version, 'parent_version_latest' => ( isset( $themes_update->response[ $parent_theme->get_stylesheet() ]['new_version'] ) ) ? $themes_update->response[ $parent_theme->get_stylesheet() ]['new_version'] : false, 'parent_author_url' => $parent_theme->{'Author URI'}, ); } else { $parent_theme_info = array( 'parent_name' => '', 'parent_version' => '', 'parent_version_latest' => '', 'parent_author_url' => '', ); } $active_theme_info = array( 'name' => $active_theme->name, 'version' => $active_theme->version, 'version_latest' => ( isset( $themes_update->response[ $active_theme->get_stylesheet() ]['new_version'] ) ) ? $themes_update->response[ $active_theme->get_stylesheet() ]['new_version'] : false, 'author_url' => esc_url_raw( $active_theme->{'Author URI'} ), 'is_child_theme' => is_child_theme(), ); return array_merge( $active_theme_info, $parent_theme_info ); } /** * Notation to numbers. * * This function transforms the php.ini notation for numbers (like '2M') to an integer. * * @param string $size Size value. * @return int */ function usces_let_to_num( $size ) { $l = substr( $size, -1 ); $ret = (int) substr( $size, 0, -1 ); switch ( strtoupper( $l ) ) { case 'P': $ret *= 1024; // No break. case 'T': $ret *= 1024; // No break. case 'G': $ret *= 1024; // No break. case 'M': $ret *= 1024; // No break. case 'K': $ret *= 1024; // No break. } return $ret; } function usces_get_total_orders() { global $wpdb; $order_table_name = $wpdb->prefix . 'usces_order'; $sql = "SELECT COUNT(*) AS total FROM $order_table_name"; $result = $wpdb->get_row( $sql ); return $result->total; } function usces_get_total_members() { global $wpdb; $member_table_name = usces_get_tablename( 'usces_member' ); $sql = "SELECT COUNT(*) AS total FROM $member_table_name"; $result = $wpdb->get_row( $sql ); return $result->total; } function get_welcart_system_information() { global $usces, $usces_settings; $options = get_option( 'usces', array() ); $options_ex = get_option( 'usces_ex', array() ); $indi_item_name_text = array( 'item_name' => 'item name', 'item_code' => 'item code', 'sku_name' => 'SKU name', 'sku_code' => 'SKU code', ); return array( 'version' => USCES_VERSION, 'total_items' => $usces->get_items_num(), 'total_sku' => array_sum( usces_get_stocs() ), 'maintenance_mode' => ( isset( $options['display_mode'] ) && $options['display_mode'] == 'Maintenancemode' ) ? true : false, 'campaign_schedule' => $options['campaign_schedule'], 'order_mail' => $options['order_mail'], 'sender_mail' => $options['sender_mail'], 'postage_privilege' => $options['postage_privilege'], // free ship condition. 'purchase_limit' => $options['purchase_limit'], 'shipping_rule' => $options['shipping_rule'], 'shipping_rule_text' => get_option( 'usces_shipping_rule' ), 'tax_mode' => $options['tax_mode'], 'tax_target' => $options['tax_target'], 'applicable_taxrate' => $options['applicable_taxrate'], 'tax_rate' => $options['tax_rate'], 'reduced_tax_rate' => $options['tax_rate_reduced'], 'tax_method' => $options['tax_method'], 'membership_system' => $options['membersystem_state'], 'membership_point' => $options['membersystem_point'], 'point_coverage' => $options['point_coverage'], 'point_assign' => $options['point_assign'], 'payment_methods' => usces_get_system_option( 'usces_payment_method', 'sort' ), 'payment_structure' => $usces->payment_structure, 'common_options' => usces_get_opts( USCES_CART_NUMBER ), 'common_options_type' => get_option( 'usces_item_option_select' ), 'shipping_methods' => $options['delivery_method'], 'shipping_charge' => $options['shipping_charge'], 'delivery_days' => $options['delivery_days'], 'delivery_method' => $options['delivery_method'], 'delivery_time_limit' => $options['delivery_time_limit'], 'shortest_delivery_time' => $options['shortest_delivery_time'], 'delivery_after_days' => $options['delivery_after_days'], 'newmem_admin_mail' => $options['newmem_admin_mail'], 'updmem_admin_mail' => $options['updmem_admin_mail'], 'updmem_customer_mail' => $options['updmem_customer_mail'], 'delmem_admin_mail' => $options['delmem_admin_mail'], 'delmem_customer_mail' => $options['delmem_customer_mail'], 'put_customer_name' => $options['put_customer_name'], 'email_attach_feature' => $options['email_attach_feature'], 'email_attach_file_extension' => $options['email_attach_file_extension'], 'email_attach_file_size' => $options['email_attach_file_size'], 'add_html_email_option' => $options['add_html_email_option'], 'indi_item_name' => $options['indi_item_name'], 'indi_item_name_text' => $indi_item_name_text, 'pos_item_name' => $options['pos_item_name'], 'divide_item' => $options['divide_item'], 'itemimg_anchor_rel' => $options['itemimg_anchor_rel'], 'fukugo_category_orderby' => $options['fukugo_category_orderby'], 'fukugo_category_order' => $options['fukugo_category_order'], 'use_ssl' => $options['use_ssl'], 'inquiry_id' => $options['inquiry_id'], 'no_cart_css' => $options['system']['no_cart_css'], 'subimage_rule' => $options['system']['subimage_rule'], 'pdf_delivery' => $options['system']['pdf_delivery'], 'csv_encode_type' => $options['system']['csv_encode_type'], 'csv_category_format' => $options['system']['csv_category_format'], 'settlement_backup' => $options['system']['settlement_backup'], 'settlement_notice' => $options['system']['settlement_notice'], 'country' => $usces_settings['country'], 'front_lang' => $options['system']['front_lang'], 'currency' => $options['system']['currency'], 'addressform' => $options['system']['addressform'], 'target_market' => $options['system']['target_market'], 'ganbare_activate_flag' => $options_ex['system']['ganbare']['activate_flag'], 'stocklink_orderedit_flag' => $options_ex['system']['stocklink']['orderedit_flag'], 'stocklink_collective_flag' => $options_ex['system']['stocklink']['collective_flag'], 'datalistup_orderlist_flag' => $options_ex['system']['datalistup']['orderlist_flag'], 'datalistup_memberlist_flag' => $options_ex['system']['datalistup']['memberlist_flag'], 'verifyemail_switch_flag' => $options_ex['system']['verifyemail']['switch_flag'], 'verifyemail_edit_flag' => $options_ex['system']['verifyemail']['edit_flag'], 'verifyemail_login_notify' => $options_ex['system']['verifyemail']['login_notify'], 'number_of_orders' => usces_get_total_orders(), 'number_of_members' => usces_get_total_members(), 'settlement_selected' => get_option( 'usces_settlement_selected', array() ), 'available_settlement' => get_option( 'usces_available_settlement', array() ), 'brute_force_status' => $options_ex['system']['brute_force']['status'], 'google_recaptcha_status' => $options_ex['system']['google_recaptcha']['status'], 'structured_data_product_status' => $options_ex['system']['structured_data_product']['status'], 'fee_subject' => $usces->options['fee_subject'], 'newproductimage_switch_flag' => $options_ex['system']['newproductimage']['switch_flag'], 'operation_log_switch_flag' => $options_ex['system']['operation_log']['status'], 'credit_security' => $options_ex['system']['credit_security']['active'], ); } function usces_generate_system_information_text( $environment, $theme, $active_plugins, $inactive_plugins, $welcart_information, $loaded_extensions, $ini_confs ) { $data = '### ' . __( 'WordPress Settings', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'WordPress Address (URL)', 'usces' ) . ' : ' . esc_html( $environment['site_url'] ) . "\r\n"; $data .= __( 'Site Address (URL)', 'usces' ) . ' : ' . esc_html( $environment['home_url'] ) . "\r\n"; $data .= __( 'WordPress Version', 'usces' ) . ' : ' . esc_html( $environment['wp_version'] ) . "\r\n"; $data .= __( 'Site Language', 'usces' ) . ' : ' . esc_html( $environment['site_language'] ) . "\r\n"; $data .= __( 'Timezone', 'usces' ) . ' : ' . esc_html( $environment['timezone'] ) . "\r\n"; $data .= __( 'Number of media files', 'usces' ) . ' : ' . esc_html( $environment['number_of_media'] ) . "\r\n"; $data .= __( 'Blog pages show at most', 'usces' ) . ' : ' . esc_html( $environment['number_of_post'] ) . "\r\n"; $data .= __( 'Search engine visibility', 'usces' ) . ' : ' . ( ( $environment['blog_public'] ) ? '' : __( 'Discourage search engines from indexing this site', 'usces' ) ) . "\r\n"; $data .= __( 'Thumbnail size', 'usces' ) . ' : ' . __( 'Width', 'usces' ) . ' ' . esc_html( $environment['thumbnail_size']['width'] ) . ' ' . __( 'Height', 'usces' ) . ' ' . esc_html( $environment['thumbnail_size']['height'] ) . "\r\n"; $data .= __( 'Image medium size', 'usces' ) . ' : ' . __( 'Width', 'usces' ) . ' ' . esc_html( $environment['medium_size']['width'] ) . ' ' . __( 'Height', 'usces' ) . ' ' . esc_html( $environment['medium_size']['height'] ) . "\r\n"; $data .= __( 'Image large size', 'usces' ) . ' : ' . __( 'Width', 'usces' ) . ' ' . esc_html( $environment['large_size']['width'] ) . ' ' . __( 'Height', 'usces' ) . ' ' . esc_html( $environment['large_size']['height'] ) . "\r\n"; $data .= __( 'Permalink Settings', 'usces' ) . ' : ' . esc_html( $environment['permalinks'] ) . "\r\n"; $data .= __( 'WordPress Multisite', 'usces' ) . ' : ' . ( ( $environment['wp_multisite'] ) ? __( 'ON', 'usces' ) : '' ) . "\r\n"; $data .= __( 'WordPress Memory Limit', 'usces' ) . ' : ' . esc_html( $environment['wp_memory_limit'] ) . "\r\n"; $data .= __( 'WordPress Debug Mode', 'usces' ) . ' : ' . ( ( $environment['wp_debug_mode'] ) ? __( 'ON', 'usces' ) : __( 'OFF', 'usces' ) ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'Theme', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'Theme name', 'usces' ) . ' : ' . esc_html( $theme['name'] ) . "\r\n"; $data .= __( 'Theme version', 'usces' ) . ' : ' . esc_html( $theme['version'] ) . "\r\n"; $data .= __( 'Author URL', 'usces' ) . ' : ' . esc_html( $theme['author_url'] ) . "\r\n"; if ( isset( $theme['is_child_theme'] ) && $theme['is_child_theme'] ) { $data .= __( 'Parent theme name', 'usces' ) . ' : ' . esc_html( $theme['parent_name'] ) . "\r\n"; $data .= __( 'Parent theme version', 'usces' ) . ' : ' . esc_html( $theme['parent_version'] ) . "\r\n"; $data .= __( 'Parent author URL', 'usces' ) . ' : ' . esc_html( $theme['parent_author_url'] ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'Active Plugins', 'usces' ) . " ###\r\n\r\n"; foreach ( $active_plugins as $plugin ) { $data .= esc_html( $plugin['name'] ) . ' : ' . __( 'by', 'usces' ) . ' ' . esc_html( $plugin['author_name'] ) . ' - ' . esc_html( $plugin['version'] ) . esc_html( ( $plugin['version'] != $plugin['version_latest'] ) ? sprintf( __( '( Update to version %1$s is available. )', 'usces' ), $plugin['version_latest'] ) : '' ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'Inactive Plugins', 'usces' ) . " ###\r\n\r\n"; foreach ( $inactive_plugins as $plugin ) { $data .= esc_html( $plugin['name'] ) . ' : ' . __( 'by', 'usces' ) . ' ' . esc_html( $plugin['author_name'] ) . ' - ' . esc_html( $plugin['version'] ) . esc_html( ( $plugin['version'] != $plugin['version_latest'] ) ? sprintf( __( '( Update to version %1$s is available. )', 'usces' ), $plugin['version_latest'] ) : '' ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'General Setting', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'Welcart Version', 'usces' ) . ' : ' . esc_html( $welcart_information['version'] ) . "\r\n"; $data .= __( 'number of item', 'usces' ) . ' : ' . esc_html( $welcart_information['total_items'] ) . "\r\n"; $data .= __( 'SKU total number', 'usces' ) . ' : ' . esc_html( $welcart_information['total_sku'] ) . "\r\n"; $data .= __( 'Display mode', 'usces' ) . ' : ' . ( ( $welcart_information['maintenance_mode'] ) ? __( 'Under Maintenance', 'usces' ) : __( 'Normal business', 'usces' ) ) . "\r\n"; $data .= __( 'Campaign Schedule', 'usces' ) . ' : ' . __( 'starting time', 'usces' ) . ': '; foreach ( $welcart_information['campaign_schedule']['start'] as $key => $value ) { $data .= esc_html( $value ) . ' ' . __( $key, 'usces' ); } $data .= '. ' . __( 'date and time of termination', 'usces' ) . ': '; foreach ( $welcart_information['campaign_schedule']['end'] as $key => $value ) { $data .= esc_html( $value ) . ' ' . __( $key, 'usces' ) . ' '; } $data .= "\r\n"; $data .= __( 'E-mail address for ordering', 'usces' ) . ' : ' . esc_html( $welcart_information['order_mail'] ) . "\r\n"; $data .= __( 'Sender\'s e-mail address', 'usces' ) . ' : ' . esc_html( $welcart_information['sender_mail'] ) . "\r\n"; $data .= __( 'Conditions for free shipping', 'usces' ) . ' : ' . ( ( ! empty( $welcart_information['postage_privilege'] ) ) ? esc_html( $welcart_information['postage_privilege'] ) . __( 'Above', 'usces' ) : '' ) . "\r\n"; $data .= __( 'default limitation number of purchase', 'usces' ) . ' : ' . ( ( ! empty( $welcart_information['purchase_limit'] ) ) ? esc_html( $welcart_information['purchase_limit'] ) . __( 'maximum amount', 'usces' ) : '' ) . "\r\n"; $data .= __( 'initial value of date of sending out.', 'usces' ) . ' : ' . ( ( isset( $welcart_information['shipping_rule_text'][ $welcart_information['shipping_rule'] ] ) ) ? esc_html( $welcart_information['shipping_rule_text'][ $welcart_information['shipping_rule'] ] ) : '' ) . "\r\n"; $data .= __( 'Tax treatment', 'usces' ) . ' : ' . ( ( $welcart_information['tax_mode'] == 'include' ) ? __( 'Included', 'usces' ) : __( 'Excluded', 'usces' ) ) . "\r\n"; $data .= __( 'Tax target', 'usces' ) . ' : ' . ( ( $welcart_information['tax_target'] == 'products' ) ? __( 'Only Products', 'usces' ) : __( 'All Amount', 'usces' ) ) . "\r\n"; $data .= __( 'Applicable tax rate', 'usces' ) . ' : ' . ( ( $welcart_information['applicable_taxrate'] == 'standard' ) ? __( 'Standard tax rate', 'usces' ) : __( 'Reduced tax rate', 'usces' ) ) . "\r\n"; $data .= __( 'Percentage of Consumption tax', 'usces' ) . ' : ' . esc_html( ucfirst( $welcart_information['tax_rate'] ) ) . ' %' . "\r\n"; $data .= __( 'Reduced tax rate', 'usces' ) . ' : ' . esc_html( $welcart_information['reduced_tax_rate'] ) . ' %' . "\r\n"; $data .= __( 'method of Calculation of the tax', 'usces' ) . ' : '; switch ( $welcart_information['tax_method'] ) { case 'cutting': $data .= __( 'drop fractions', 'usces' ) . "\r\n"; break; case 'bring': $data .= __( 'raise to a unit', 'usces' ) . "\r\n"; break; case 'rounding': $data .= __( 'round up numbers of five and above and round down anything under', 'usces' ) . "\r\n"; break; default: break; } $data .= __( 'Subject to fees', 'usces' ) . ' : ' . ( ( $welcart_information['fee_subject'] == 'products' ) ? __( 'Only Products', 'usces' ) : __( 'All Amount', 'usces' ) ) . "\r\n"; $data .= __( 'membership syetem', 'usces' ) . ' : ' . ( ( $welcart_information['membership_system'] == 'activate' ) ? __( 'to use', 'usces' ) : __( 'not to use', 'usces' ) ) . "\r\n"; $data .= __( 'membership points', 'usces' ) . ' : ' . ( ( $welcart_information['membership_point'] == 'activate' ) ? __( 'to grant', 'usces' ) : __( 'not to grant', 'usces' ) ) . "\r\n"; $data .= __( 'Areas of Point Redemption', 'usces' ) . ' : ' . ( ( $welcart_information['point_coverage'] ) ? __( 'Applicable to Total Merchandise Price and Handling Fee', 'usces' ) : __( 'Limited Only to Total Merchandise Price', 'usces' ) ) . "\r\n"; $data .= __( 'Timing point of grant', 'usces' ) . ' : ' . ( ( $welcart_information['point_assign'] ) ? __( 'Payment at the time', 'usces' ) : __( 'Immediately', 'usces' ) ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'payment method', 'usces' ) . " ###\r\n\r\n"; foreach ( $welcart_information['payment_methods'] as $payment ) { $data .= esc_html( $payment['name'] ) . ' - ' . ( ( isset( $welcart_information['payment_structure'][ $payment['settlement'] ] ) ) ? ( esc_html( $welcart_information['payment_structure'][ $payment['settlement'] ] ) ) : '' ) . ' - ' . ( ( $payment['use'] == 'activate' ) ? __( 'Activate', 'usces' ) : __( 'Deactivate', 'usces' ) ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'Common Options', 'usces' ) . " ###\r\n\r\n"; foreach ( $welcart_information['common_options'] as $common_options ) { $data .= __( 'option name', 'usces' ) . ' : ' . esc_html( $common_options['name'] ) . "\r\n"; $data .= __( 'selected amount', 'usces' ) . ' : ' . ( str_replace( "\n", ' ', $common_options['value'] ) ) . "\r\n"; $data .= __( 'Type of option', 'usces' ) . ' : ' . esc_html( ( isset( $welcart_information['common_options_type'][ $common_options['means'] ] ) ) ? ( esc_html( $welcart_information['common_options_type'][ $common_options['means'] ] ) ) : '' ) . "\r\n"; $data .= __( 'Required', 'usces' ) . ' : ' . ( ( 1 === (int) $common_options['essential'] ) ? __( 'Essential', 'usces' ) : '' ) . "\r\n\r\n"; } $data .= "\r\n" . '### ' . __( 'shipping option', 'usces' ) . " ###\r\n\r\n"; foreach ( $welcart_information['shipping_methods'] as $shipping ) { $charge = ''; $delivery_day = ''; if ( -1 === $shipping['charge'] ) { $charge = esc_html__( 'Not fixing shipping.', 'usces' ); } else { foreach ( $welcart_information['shipping_charge'] as $shipping_charge ) { if ( $shipping['charge'] == $shipping_charge['id'] ) { $charge = $shipping_charge['name']; break; } } } if ( -1 === $shipping['days'] ) { $delivery_day = esc_html__( 'Delivery Date Not Specified', 'usces' ); } else { foreach ( $welcart_information['delivery_days'] as $day ) { if ( $shipping['days'] == $day['id'] ) { $delivery_day = $day['name']; break; } } } $data .= esc_html( $shipping['name'] ) . ' - ' . ( str_replace( "\n", ' ', $shipping['time'] ) ) . ' - ' . ( ( $shipping['intl'] ) ? __( 'International Shipment', 'usces' ) : __( 'Domestic Shipment', 'usces' ) ) . ' - '; $data .= esc_html( $charge ) . ' - ' . esc_html( $delivery_day ) . ( ( $shipping['nocod'] ) ? ' - ' . __( 'No COD', 'usces' ) : '' ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'Shipping', 'usces' ) . " ###\r\n\r\n"; foreach ( $welcart_information['shipping_charge'] as $shipping_charge ) { $data .= esc_html( $shipping_charge['name'] ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'Mail Options', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'New sign-in completion email', 'usces' ) . ' : ' . ( ( $welcart_information['newmem_admin_mail'] ) ? __( 'Send', 'usces' ) : __( 'Don\'t send', 'usces' ) ) . "\r\n"; $data .= __( 'Member update completion email to admin', 'usces' ) . ' : ' . ( ( $welcart_information['updmem_admin_mail'] ) ? __( 'Send', 'usces' ) : __( 'Don\'t send', 'usces' ) ) . "\r\n"; $data .= __( 'Member update completion email to customer', 'usces' ) . ' : ' . ( ( $welcart_information['updmem_customer_mail'] ) ? __( 'Send', 'usces' ) : __( 'Don\'t send', 'usces' ) ) . "\r\n"; $data .= __( 'Member removal completion email to admin', 'usces' ) . ' : ' . ( ( $welcart_information['delmem_admin_mail'] ) ? __( 'Send', 'usces' ) : __( 'Don\'t send', 'usces' ) ) . "\r\n"; $data .= __( 'Member removal completion email to customer', 'usces' ) . ' : ' . ( ( $welcart_information['delmem_customer_mail'] ) ? __( 'Send', 'usces' ) : __( 'Don\'t send', 'usces' ) ) . "\r\n"; $data .= __( 'Customer name', 'usces' ) . ' : ' . ( ( $welcart_information['put_customer_name'] ) ? __( 'Indication', 'usces' ) : __( 'Non-indication', 'usces' ) ) . "\r\n"; $data .= __( 'Attachment file for administrator email', 'usces' ) . ' : ' . ( ( $welcart_information['email_attach_feature'] ) ? __( 'Use', 'usces' ) : __( 'Do not Use', 'usces' ) ) . "\r\n"; if ( $welcart_information['email_attach_feature'] ) { $data .= __( 'Extensions of attachments', 'usces' ) . ' : ' . esc_html( $welcart_information['email_attach_file_extension'] ) . "\r\n"; $data .= __( 'Maximum size of email attachment', 'usces' ) . ' : ' . esc_html( $welcart_information['email_attach_file_size'] ) . " Mb\r\n"; } $data .= __( 'HTML mail format', 'usces' ) . ' : ' . ( ( $welcart_information['add_html_email_option'] ) ? __( 'Use', 'usces' ) : __( 'Do not Use', 'usces' ) ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'Rule of the column for a item name', 'usces' ) . " ###\r\n\r\n"; foreach ( $welcart_information['indi_item_name'] as $key => $value ) { $data .= __( "Indication of {$welcart_information['indi_item_name_text'][ $key ]}", 'usces' ) . ' : ' . ( ( $value ) ? __( 'Show', 'usces' ) : '' ) . "\r\n"; $data .= __( "Position of {$welcart_information['indi_item_name_text'][ $key ]}", 'usces' ) . ' : ' . esc_html( $welcart_information['pos_item_name'][ $key ] ) . "\r\n"; } $data .= "\r\n" . '### ' . __( 'System Setting', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'Display Modes', 'usces' ) . ' : ' . ( ( $welcart_information['divide_item'] ) ? __( 'Not display an article in blog', 'usces' ) : '' ) . "\r\n"; $data .= __( 'rel attribute', 'usces' ) . ' : ' . ( ( $welcart_information['itemimg_anchor_rel'] ) ? $welcart_information['itemimg_anchor_rel'] : '' ) . "\r\n"; $data .= __( 'compound category sort item', 'usces' ) . ' : ' . ( ( 'name' == $welcart_information['fukugo_category_orderby'] ) ? __( 'category name', 'usces' ) : __( 'category ID', 'usces' ) ) . "\r\n"; $data .= __( 'compound category sort order', 'usces' ) . ' : ' . ( ( 'DESC' == $welcart_information['fukugo_category_order'] ) ? __( 'Descendin', 'usces' ) : __( 'Ascending', 'usces' ) ) . "\r\n"; $data .= __( 'Switching SSL', 'usces' ) . ' : ' . ( ( $welcart_information['use_ssl'] ) ? __( 'Switching', 'usces' ) : '' ) . "\r\n"; $data .= __( 'The page_id of the inquiry-form', 'usces' ) . ' : ' . esc_html( $welcart_information['inquiry_id'] ) . "\r\n"; $data .= __( 'To disable usces_cart.css', 'usces' ) . ' : ' . ( ( $welcart_information['no_cart_css'] ) ? __( 'To disable', 'usces' ) : '' ) . "\r\n"; $data .= __( 'Product sub-image rule', 'usces' ) . ' : ' . ( ( $welcart_information['subimage_rule'] ) ? __( 'Put two _ (underscores) between the product code and the sequential number', 'usces' ) : __( 'Product Code Forward Matching', 'usces' ) ) . "\r\n"; $data .= __( 'Described method of invoice', 'usces' ) . ' : ' . ( ( $welcart_information['pdf_delivery'] ) ? __( 'To address the shipping information', 'usces' ) : __( 'To address the purchaser information', 'usces' ) ) . "\r\n"; $data .= __( 'Character code in the CSV file', 'usces' ) . ' : ' . ( ( $welcart_information['csv_encode_type'] ) ? __( 'UTF-8', 'usces' ) : __( 'Shift_JIS', 'usces' ) ) . "\r\n"; $data .= __( "'Category' of CSV product data file", 'usces' ) . ' : ' . ( ( $welcart_information['csv_category_format'] ) ? __( 'slug (slug)', 'usces' ) : __( 'ID (tag_ID)', 'usces' ) ) . "\r\n"; $data .= __( 'Order data re-created from the settlement log', 'usces' ) . ' : ' . ( ( $welcart_information['settlement_backup'] ) ? __( 'Use', 'usces' ) : __( 'Do not Use', 'usces' ) ) . "\r\n"; $data .= __( 'Settlement error message', 'usces' ) . ' : ' . ( ( $welcart_information['settlement_notice'] ) ? __( 'Display', 'usces' ) : __( 'Do not display', 'usces' ) ) . "\r\n"; $data .= __( 'The language of the front-end', 'usces' ) . ' : ' . esc_html( $welcart_information['front_lang'] ) . "\r\n"; $data .= __( 'Currencies', 'usces' ) . ' : ' . ( ( isset( $welcart_information['country'][ $welcart_information['currency'] ] ) ) ? esc_html( $welcart_information['country'][ $welcart_information['currency'] ] ) : esc_html( $welcart_information['currency'] ) ) . "\r\n"; $data .= __( 'The name and address form', 'usces' ) . ' : ' . ( ( isset( $welcart_information['country'][ $welcart_information['addressform'] ] ) ) ? esc_html( $welcart_information['country'][ $welcart_information['addressform'] ] ) : esc_html( $welcart_information['currency'] ) ) . "\r\n"; $target_market_country = array(); foreach ( $welcart_information['target_market'] as $key => $value ) { if ( isset( $welcart_information['country'][ $value ] ) ) { $target_market_country[] = $welcart_information['country'][ $value ]; } } $data .= __( 'Target Market', 'usces' ) . ' : ' . esc_html( implode( ', ', $target_market_country ) ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'System extension', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'Ganbare Tencho', 'usces' ) . ' : ' . ( ( $welcart_information['ganbare_activate_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Linkage Order Upadate', 'usces' ) . ' : ' . ( ( $welcart_information['stocklink_orderedit_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Linkage Order Collective Upadate', 'usces' ) . ' : ' . ( ( $welcart_information['stocklink_collective_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( '[New] Order List', 'usces' ) . ' : ' . ( ( $welcart_information['datalistup_orderlist_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( '[New] Member List', 'usces' ) . ' : ' . ( ( $welcart_information['datalistup_memberlist_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Email verification for new registration', 'usces' ) . ' : ' . ( ( $welcart_information['verifyemail_switch_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Email verification for editing information', 'usces' ) . ' : ' . ( ( $welcart_information['verifyemail_edit_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Login Notification', 'usces' ) . ' : ' . ( ( $welcart_information['verifyemail_login_notify'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Google reCAPTCHA v3', 'usces' ) . ' : ' . ( ( $welcart_information['google_recaptcha_status'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Brute-force attack countermeasures', 'usces' ) . ' : ' . ( ( $welcart_information['brute_force_status'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Structured data measures', 'usces' ) . ' : ' . ( ( $welcart_information['structured_data_product_status'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'New product image registration', 'usces' ) . ' : ' . ( ( $welcart_information['newproductimage_switch_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Operation Log', 'usces' ) . ' : ' . ( ( $welcart_information['operation_log_switch_flag'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= __( 'Credit Card Security Measures', 'usces' ) . ' : ' . ( ( $welcart_information['credit_security'] ) ? __( 'Enabled', 'usces' ) : __( 'Disabled', 'usces' ) ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'Settlement Setting', 'usces' ) . " ###\r\n\r\n"; $settlement_selected_text = array(); if ( is_array( $welcart_information['settlement_selected'] ) ) { foreach ( $welcart_information['settlement_selected'] as $key => $value ) { if ( isset( $welcart_information['available_settlement'][ $value ] ) ) { $settlement_selected_text[] = esc_html__( $welcart_information['available_settlement'][ $value ], 'usces' ); } } } $data .= __( 'Settlement modules in use', 'usces' ) . ' : ' . esc_html( implode( ', ', $settlement_selected_text ) ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'Management Information', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'Number of orders', 'usces' ) . ' : ' . esc_html( $welcart_information['number_of_orders'] ) . "\r\n"; $data .= __( 'Number of members', 'usces' ) . ' : ' . esc_html( $welcart_information['number_of_members'] ) . "\r\n"; $data .= "\r\n" . '### ' . __( 'Server environment', 'usces' ) . " ###\r\n\r\n"; $data .= __( 'Server', 'usces' ) . ' : ' . esc_html( $environment['server'] ) . "\r\n"; $data .= __( 'PHP version', 'usces' ) . ' : ' . esc_html( $environment['php_version'] ) . "\r\n"; $data .= __( 'PHP global memory', 'usces' ) . ' : ' . esc_html( $ini_confs['memory_limit']['global_value'] ) . "\r\n"; $data .= __( 'PHP locale memory', 'usces' ) . ' : ' . esc_html( $ini_confs['memory_limit']['local_value'] ) . "\r\n"; $data .= __( 'PHP post max size', 'usces' ) . ' : ' . esc_html( $environment['php_post_max_size'] ) . "\r\n"; $data .= __( 'PHP time limit', 'usces' ) . ' : ' . esc_html( $environment['php_max_execution_time'] ) . "\r\n"; $data .= __( 'PHP Max Input Vars', 'usces' ) . ' : ' . esc_html( $environment['php_max_input_vars'] ) . "\r\n"; $data .= __( 'cURL', 'usces' ) . ' : ' . ( in_array( 'curl', $loaded_extensions ) ? 'ON' : '-' ) . "\r\n"; $data .= __( 'cURL version', 'usces' ) . ' : ' . ( esc_html( $environment['curl_version']['version'] . ' ' . $environment['curl_version']['host'] ) ) . "\r\n"; $data .= __( 'MySQL version', 'usces' ) . ' : ' . esc_html( $environment['mysql_version'] ) . "\r\n"; $data .= __( 'Maximum upload size', 'usces' ) . ' : ' . esc_html( $environment['upload_max_filesize'] ) . "\r\n"; $data .= __( 'SimpleXML', 'usces' ) . ' : ' . ( in_array( 'SimpleXML', $loaded_extensions ) ? 'ON' : '-' ) . "\r\n"; $data .= __( 'gd', 'usces' ) . ' : ' . ( in_array( 'gd', $loaded_extensions ) ? 'ON' : '-' ) . "\r\n"; $data .= __( 'json', 'usces' ) . ' : ' . ( in_array( 'json', $loaded_extensions ) ? 'ON' : '-' ) . "\r\n"; $data .= __( 'mbstring', 'usces' ) . ' : ' . ( in_array( 'mbstring', $loaded_extensions ) ? 'ON' : '-' ) . "\r\n"; $data .= __( 'openssl', 'usces' ) . ' : ' . ( in_array( 'openssl', $loaded_extensions ) ? 'ON' : '-' ) . "\r\n"; return $data; } function usces_download_system_information() { check_ajax_referer( 'admin_system' ); if ( ! current_user_can( 'wel_manage_setting' ) ) { wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); } $filename = 'welcart_information_' . date_i18n( 'YmdHis' ) . '.txt'; $wp_environment = usces_get_wp_environment(); $environment = $wp_environment['environment']; $theme = $wp_environment['theme']; $active_plugins = $wp_environment['active_plugins']; $inactive_plugins = $wp_environment['inactive_plugins']; $welcart_information = get_welcart_system_information(); $loaded_extensions = get_loaded_extensions(); $ini_confs = ini_get_all(); $data = usces_generate_system_information_text( $environment, $theme, $active_plugins, $inactive_plugins, $welcart_information, $loaded_extensions, $ini_confs ); $result = array( 'status' => true, 'data' => $data, 'filename' => $filename, ); echo json_encode( $result ); wp_die(); } /** * List Download Authority. * * @return boolean */ function usces_admin_user_can_download_list() { $admin_user = array( 'administrator', 'wc_management' ); $custom_user = apply_filters( 'usces_filter_admin_user_can_download_list', array() ); if ( is_array( $custom_user ) && ! empty( $custom_user ) ) { $admin_user = array_merge( $admin_user, $custom_user ); } $can_dl = false; foreach ( $admin_user as $user ) { if ( current_user_can( $user ) ) { $can_dl = true; break; } } return $can_dl; } /** * Filter content wp_editor preview. */ function usces_filter_content_wp_editor_preview() { global $usces; $_POST = $usces->stripslashes_deep_post( $_POST ); if ( ! current_user_can( 'wel_manage_order' ) ) { // This preview is also used in order_edit_form. wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); } $nonce = isset( $_POST['wc_nonce'] ) ? wp_unslash( $_POST['wc_nonce'] ) : ''; if ( ! wp_verify_nonce( $nonce, 'wc_preview_editor_nonce' ) ) { $error_msg = array( 'message' => 'Your request is not valid.' ); wp_send_json_error( $error_msg, 403 ); } $mode = $_POST['mode']; $res = array( 'status' => false, ); switch ( $mode ) { case 'preview_email': $content_header = isset( $_POST['content_header'] ) ? $_POST['content_header'] : ''; $content_footer = isset( $_POST['content_footer'] ) ? $_POST['content_footer'] : ''; $res['status'] = true; $res['content_header'] = wpautop( $content_header ); $res['content_footer'] = wpautop( $content_footer ); break; case 'preview_email_order_detail': $content = isset( $_POST['content'] ) ? $_POST['content'] : ''; $res['status'] = true; $res['content'] = wpautop( wp_kses_post( $content ) ); break; } wp_send_json( $res ); } /** * 手数料対象金額 * -'all' 送料を含む全額 * -'products' 商品代金のみ * * @return string */ function usces_is_fee_subject() { global $usces; $fee_subject = ( ! empty( $usces->options['fee_subject'] ) ) ? $usces->options['fee_subject'] : 'all'; return $fee_subject; }