Commit fc69a48d by Ali Arshad

added payment gateway 50%

parent b5f8d493
Pipeline #196 passed with stage
in 0 seconds
<?php
/**
* Created by PhpStorm.
* User: ali
* Date: 21/01/2018
* Time: 4:26 PM
*/
\ No newline at end of file
<?php <?php
add_action('admin_menu', 'vq_lms_settings_page');
add_action( 'admin_menu', 'vq_lms_settings_page' ); add_action('admin_init', 'vq_lms_settings_init');
add_action('admin_init', 'vq_lms_payment_settings_init');
add_action( 'admin_init', 'vq_lms_settings_init' );
function vq_lms_payment_settings_init()
{
register_setting('vq_lms_settings', 'vq_lms_payment_merchant_id');
register_setting('vq_lms_settings', 'vq_lms_payment_merchant_name');
register_setting('vq_lms_settings', 'vq_lms_payment_company_name');
register_setting('vq_lms_settings', 'vq_lms_payment_merchant_key');
function vq_lms_settings_init() { add_settings_section(
register_setting( 'vq_lms_settings', 'vq_lms_settings_options' ); 'vq_lms_payment_settings_section',
'Payment Gateway Settings',
'vq_lms_general_settings_section_cb',
'vq_lms_settings'
);
add_settings_field(
'vq_lms_payment_settings_merchant_id',
'Merchant ID',
'vq_lms_payment_settings_merchant_id',
'vq_lms_settings',
'vq_lms_payment_settings_section'
);
add_settings_field(
'vq_lms_payment_merchant_name',
'Merchant Name',
'vq_lms_payment_merchant_name',
'vq_lms_settings',
'vq_lms_payment_settings_section'
);
add_settings_field(
'vq_lms_payment_company_name',
'Company Name',
'vq_lms_payment_company_name',
'vq_lms_settings',
'vq_lms_payment_settings_section'
);
add_settings_field(
'vq_lms_payment_merchant_key',
'Merchant Key',
'vq_lms_payment_merchant_key',
'vq_lms_settings',
'vq_lms_payment_settings_section'
);
}
function vq_lms_general_settings_section_cb()
{
echo "Settings related to payment gateway.";
}
function vq_lms_payment_merchant_key()
{
$merchant_key = get_option('vq_lms_payment_merchant_key');
?>
<input type="text"
name="vq_lms_payment_merchant_key"
value="<?php echo $merchant_key; ?>"
/>
<p class="description">
<?php esc_html_e('Specify Merchant Key of payment gateway.', 'vq_lms_settings'); ?>
</p>
<?php
}
function vq_lms_payment_company_name()
{
$company_name = get_option('vq_lms_payment_company_name');
?>
<input type="text"
name="vq_lms_payment_company_name"
value="<?php echo $company_name; ?>"
/>
<p class="description">
<?php esc_html_e('Specify Company Name of payment gateway.', 'vq_lms_settings'); ?>
</p>
<?php
}
function vq_lms_payment_merchant_name()
{
$merchant_name = get_option('vq_lms_payment_merchant_name');
?>
<input type="text"
name="vq_lms_payment_merchant_name"
value="<?php echo $merchant_name; ?>"
/>
<p class="description">
<?php esc_html_e('Specify Merchant Name of payment gateway.', 'vq_lms_settings'); ?>
</p>
<?php
}
function vq_lms_payment_settings_merchant_id()
{
$merchant_id = get_option('vq_lms_payment_merchant_id');
?>
<input type="text"
name="vq_lms_payment_merchant_id"
value="<?php echo $merchant_id; ?>"
/>
<p class="description">
<?php esc_html_e('Specify Merchant ID of payment gateway.', 'vq_lms_settings'); ?>
</p>
<?php
}
function vq_lms_settings_init()
{
register_setting('vq_lms_settings', 'vq_lms_settings_options');
add_settings_section( add_settings_section(
'vq_lms_settings_section_developers', 'vq_lms_settings_section_developers',
...@@ -78,59 +191,64 @@ function vq_lms_settings_init() { ...@@ -78,59 +191,64 @@ function vq_lms_settings_init() {
); );
} }
function vq_lms_settings_section_developers_cb( $args ) { function vq_lms_settings_section_developers_cb($args)
{
} }
function vq_lms_settings_field_price_cb( $args ) { function vq_lms_settings_field_price_cb($args)
$options = get_option( 'vq_lms_settings_options' ); {
$options = get_option('vq_lms_settings_options');
?> ?>
<input type="text" <input type="text"
name="vq_lms_settings_options[<?php echo esc_attr( $args['label_for'] ); ?>]" name="vq_lms_settings_options[<?php echo esc_attr($args['label_for']); ?>]"
value="<?php echo $options[$args['label_for']]; ?>" value="<?php echo $options[$args['label_for']]; ?>"
> >
<p class="description"> <p class="description">
<?php esc_html_e( 'Your entered price will be listed as default price for all courses unless specified for each.', 'vq_lms_settings' ); ?> <?php esc_html_e('Your entered price will be listed as default price for all courses unless specified for each.', 'vq_lms_settings'); ?>
</p> </p>
<?php <?php
} }
function vq_lms_settings_field_currency_name_cb($args) { function vq_lms_settings_field_currency_name_cb($args)
$options = get_option( 'vq_lms_settings_options' ); {
$options = get_option('vq_lms_settings_options');
?> ?>
<input type="text" <input type="text"
name="vq_lms_settings_options[<?php echo esc_attr( $args['label_for'] ); ?>]" name="vq_lms_settings_options[<?php echo esc_attr($args['label_for']); ?>]"
value="<?php echo $options[$args['label_for']]; ?>" value="<?php echo $options[$args['label_for']]; ?>"
> >
<p class="description"> <p class="description">
<?php esc_html_e( 'Your entered currency will be used for whole LMS system listing.', 'vq_lms_settings' ); ?> <?php esc_html_e('Your entered currency will be used for whole LMS system listing.', 'vq_lms_settings'); ?>
</p> </p>
<?php <?php
} }
function vq_lms_settings_field_currency_symbol_cb($args) { function vq_lms_settings_field_currency_symbol_cb($args)
$options = get_option( 'vq_lms_settings_options' ); {
$options = get_option('vq_lms_settings_options');
?> ?>
<input type="text" <input type="text"
name="vq_lms_settings_options[<?php echo esc_attr( $args['label_for'] ); ?>]" name="vq_lms_settings_options[<?php echo esc_attr($args['label_for']); ?>]"
value="<?php echo $options[$args['label_for']]; ?>" value="<?php echo $options[$args['label_for']]; ?>"
> >
<p class="description"> <p class="description">
<?php esc_html_e( 'Enter Currency Symbol.', 'vq_lms_settings' ); ?> <?php esc_html_e('Enter Currency Symbol.', 'vq_lms_settings'); ?>
</p> </p>
<?php <?php
} }
function vq_lms_settings_field_video_cb($args) { function vq_lms_settings_field_video_cb($args)
{
wp_enqueue_media(); wp_enqueue_media();
$options = get_option( 'vq_lms_settings_options' ); $options = get_option('vq_lms_settings_options');
if($options[$args['label_for']]) { if ($options[$args['label_for']]) {
?> ?>
<div style="width: 200px;" id="video_holder"> <div style="width: 200px;" id="video_holder">
<video id="vid" src="<?php echo $options[$args['label_for']]; ?>"> <video id="vid" src="<?php echo $options[$args['label_for']]; ?>">
...@@ -152,20 +270,20 @@ function vq_lms_settings_field_video_cb($args) { ...@@ -152,20 +270,20 @@ function vq_lms_settings_field_video_cb($args) {
<input type="hidden" <input type="hidden"
id="vq_lms_video_hidden" id="vq_lms_video_hidden"
name="vq_lms_settings_options[<?php echo esc_attr( $args['label_for'] ); ?>]" name="vq_lms_settings_options[<?php echo esc_attr($args['label_for']); ?>]"
value="<?php echo $options[$args['label_for']]; ?>"> value="<?php echo $options[$args['label_for']]; ?>">
<p class="description"> <p class="description">
<?php esc_html_e( 'video attachment to show.', 'vq_lms_settings' ); ?> <?php esc_html_e('video attachment to show.', 'vq_lms_settings'); ?>
</p> </p>
<script> <script>
var mediaUploader; var mediaUploader;
jQuery("#vq_lms_remove_video").on('click', function() { jQuery("#vq_lms_remove_video").on('click', function () {
jQuery("#vq_lms_video_hidden").val(''); jQuery("#vq_lms_video_hidden").val('');
jQuery("#vid").attr('src', ''); jQuery("#vid").attr('src', '');
}); });
jQuery('#vq_lms_video').on('click', function ( e ) { jQuery('#vq_lms_video').on('click', function (e) {
e.preventDefault(); e.preventDefault();
if (mediaUploader) { if (mediaUploader) {
mediaUploader.open(); mediaUploader.open();
...@@ -190,11 +308,13 @@ function vq_lms_settings_field_video_cb($args) { ...@@ -190,11 +308,13 @@ function vq_lms_settings_field_video_cb($args) {
<?php <?php
} }
function vq_lms_settings_field_shortcode_cb() { function vq_lms_settings_field_shortcode_cb()
{
echo '[vq_short_banner bgClr="" btnBg="" txt="" txtClr="" btnClr="" btnLink="" btnTxt=""]'; echo '[vq_short_banner bgClr="" btnBg="" txt="" txtClr="" btnClr="" btnLink="" btnTxt=""]';
} }
function vq_lms_settings_page() { function vq_lms_settings_page()
{
add_submenu_page('edit.php?post_type=vq_course', add_submenu_page('edit.php?post_type=vq_course',
'Test Page', 'Test Page',
...@@ -205,12 +325,13 @@ function vq_lms_settings_page() { ...@@ -205,12 +325,13 @@ function vq_lms_settings_page() {
); );
} }
function vq_lms_settings_page_html() { function vq_lms_settings_page_html()
if ( ! current_user_can( 'manage_options' ) ) { {
if (!current_user_can('manage_options')) {
return; return;
} }
if ( isset( $_GET['settings-updated'] ) ) { if (isset($_GET['settings-updated'])) {
add_settings_error( add_settings_error(
'vq_lms_settings_messages', 'vq_lms_settings_messages',
'vq_lms_settings_message', 'vq_lms_settings_message',
...@@ -219,15 +340,15 @@ function vq_lms_settings_page_html() { ...@@ -219,15 +340,15 @@ function vq_lms_settings_page_html() {
); );
} }
settings_errors( 'vq_lms_settings_messages' ); settings_errors('vq_lms_settings_messages');
?> ?>
<div class="wrap"> <div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1> <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form action="options.php" method="post"> <form action="options.php" method="post">
<?php <?php
settings_fields( 'vq_lms_settings' ); settings_fields('vq_lms_settings');
do_settings_sections( 'vq_lms_settings' ); do_settings_sections('vq_lms_settings');
submit_button( 'Save Settings' ); submit_button('Save Settings');
?> ?>
</form> </form>
</div> </div>
......
<?php <?php
$lmsVersion = "0.3"; $lmsVersion = "0.4";
add_action('wp_enqueue_scripts', 'enqueue_admin_css'); add_action('wp_enqueue_scripts', 'enqueue_admin_css');
add_filter('template_include', 'use_lms_template', 99); add_filter('template_include', 'use_lms_template', 99);
......
...@@ -665,3 +665,8 @@ ...@@ -665,3 +665,8 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.bootstrap-iso .disabled {
pointer-events: none;
opacity: 0.8;
}
\ No newline at end of file
...@@ -36,7 +36,7 @@ $courses = new WP_Query($args); ...@@ -36,7 +36,7 @@ $courses = new WP_Query($args);
<?php the_post_thumbnail('thumbnail') ?> <?php the_post_thumbnail('thumbnail') ?>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="course-heading"> <div class="course-heading" style="max-height: 105px; overflow: hidden;">
<h3><?php the_title(); ?> </h3> <h3><?php the_title(); ?> </h3>
<?php the_content(); ?> <?php the_content(); ?>
</div> </div>
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
courseLearner[course.id].forEach(function (learner, index) { courseLearner[course.id].forEach(function (learner, index) {
var lmsSummerySingleElem = $(lmsSummerySingleLearner); var lmsSummerySingleElem = $(lmsSummerySingleLearner);
lmsSummerySingleElem.find(".index").html(index + 1); lmsSummerySingleElem.find(".index").html(index + 1);
lmsSummerySingleElem.find(".name").html(learner.name); lmsSummerySingleElem.find(".name").html(learner.fname);
lmsSummerySingleElem.find(".email").html(learner.email); lmsSummerySingleElem.find(".email").html(learner.email);
lmsSummerySingleElem.find(".phone").html(learner.phone); lmsSummerySingleElem.find(".phone").html(learner.phone);
lmsSummerySingleElem.find(".price").html(course.cost + " " + lmsSettings.vq_lms_settings_field_currency_symbol); lmsSummerySingleElem.find(".price").html(course.cost + " " + lmsSettings.vq_lms_settings_field_currency_symbol);
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
learners.forEach(function (item, index) { learners.forEach(function (item, index) {
var learnerFormElement = $(learnerFormTemplate); var learnerFormElement = $(learnerFormTemplate);
learnerFormElement.find(".lmsIndex").html(index + 1); learnerFormElement.find(".lmsIndex").html(index + 1);
learnerFormElement.find("input[name='name']").val(item.name); learnerFormElement.find("input[name='fname']").val(item.fname);
learnerFormElement.find("input[name='email']").val(item.email); learnerFormElement.find("input[name='email']").val(item.email);
learnerFormElement.find("input[name='confirmEmail']").val(item.confirmEmail); learnerFormElement.find("input[name='confirmEmail']").val(item.confirmEmail);
learnerFormElement.find("input[name='phone']").val(item.phone); learnerFormElement.find("input[name='phone']").val(item.phone);
...@@ -152,7 +152,7 @@ ...@@ -152,7 +152,7 @@
function addEmptyLearner() { function addEmptyLearner() {
var lerner = { var lerner = {
name: "", fname: "",
email: "", email: "",
confirmEmail: "", confirmEmail: "",
phone: "", phone: "",
...@@ -177,14 +177,46 @@ ...@@ -177,14 +177,46 @@
lmsCheckoutForm.submit(function (e) { lmsCheckoutForm.submit(function (e) {
e.preventDefault();
var paymentBtn = $("#lmsProcessPayment");
var learnersWithNoCourse = learners.filter(function (learner) { var learnersWithNoCourse = learners.filter(function (learner) {
return learner.courses.length === 0; return learner.courses.length === 0;
}); });
var learnersMismatchEmails = learners.filter(function (learner) {
return learner.email !== learner.confirmEmail;
});
if (learnersWithNoCourse.length > 0) { if (learnersWithNoCourse.length > 0) {
alert("Please select courses with all learners."); alert("Please select courses with all learners.");
e.preventDefault(); return;
}
if (learnersMismatchEmails.length > 0) {
alert("Confirm email mismatched.");
return;
} }
paymentBtn.html("Please wait.");
paymentBtn.addClass("disabled");
$.post(ajaxurl, {
action: "processOrder",
data: JSON.stringify(learners)
}, function (data){
if(data == "Unable to process your request"){
alert(data);
paymentBtn.html("Proceed to payment");
paymentBtn.removeClass("disabled");
} else {
$("#paymentrequest").val(data);
$("#payserv").submit();
}
});
}); });
})(jQuery); })(jQuery);
\ No newline at end of file
...@@ -5,6 +5,10 @@ $courses = new WP_Query(array('post_type' => 'vq_course')); ...@@ -5,6 +5,10 @@ $courses = new WP_Query(array('post_type' => 'vq_course'));
while (have_posts()): while (have_posts()):
the_post(); the_post();
?> ?>
<form name="payserv" id="payserv" method="post" action="https://testpti.payserv
.net/webpaymentv2/default.aspx">
<input type="hidden" name="paymentrequest" id="paymentrequest" value="" />
</form>
<div class="bootstrap-iso"> <div class="bootstrap-iso">
<div class="e-learning-banner"> <div class="e-learning-banner">
<div class="container"> <div class="container">
...@@ -60,7 +64,8 @@ while (have_posts()): ...@@ -60,7 +64,8 @@ while (have_posts()):
</div> </div>
</div> </div>
<div class="col-sm-12"> <div class="col-sm-12">
<button type="submit" class="payment-course-button">Proceed to payment</button> <button type="submit" id="lmsProcessPayment" class="payment-course-button">Proceed to
payment</button>
</div> </div>
</div> </div>
</div> </div>
...@@ -78,7 +83,7 @@ while (have_posts()): ...@@ -78,7 +83,7 @@ while (have_posts()):
</div> </div>
<div class="col-sm-8 col-padding"> <div class="col-sm-8 col-padding">
<input class="form-control text-feild" placeholder="Name" <input class="form-control text-feild" placeholder="Name"
maxlength="200" type="string" name="name" required /> maxlength="200" type="string" name="fname" required />
<input class="form-control text-feild" placeholder="Email" <input class="form-control text-feild" placeholder="Email"
maxlength="200" type="email" name="email" required /> maxlength="200" type="email" name="email" required />
<input class="form-control text-feild" placeholder="Confirm Email" <input class="form-control text-feild" placeholder="Confirm Email"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment