آیکون درگاه بانک ملت

گزارش

سلام خسته نباشید
چطور می تونم آیکون درگاه بانک ملت رو کنار متنش صفحه پرداخت تو ووکامرس اضافه کنم؟
با تشکر

3 ماه پیش آخرین پاسخ 3 ماه پیش 2 پاسخ 261 مشاهده

    • 0
    میلاد مالدار 3 ماه پیش

    سلام

    برای اینکار باید فایل افزوده درگاه ملت رو ویرایش کنید

    کدهای افزونه رو قرار بدید برسی بشه


    • 0
    mahsa 3 ماه پیش

    <?php
    /*
    Plugin Name: درگاه پرداخت ووکامرس - پردانو
    Plugin URI: http://pardano.com
    Description: درگاه پرداخت ووکامرس - پردانو
    Version: 1.0
    Author: pardano
    Author URI: http://pardano.com
    Copyright: 2016 pardano.com
    */

    add_action('plugins_loaded', 'WC_pardano', 0);

    function WC_pardano()
    {
    if ( !class_exists( 'WC_Payment_Gateway' ) )
    return;

    class WC_full_pardano extends WC_Payment_Gateway
    {
    public function __construct()
    {

    $this ->id = 'pardano';
    $this ->method_title = 'پردانو';
    $this ->has_fields = false;
    $this ->init_form_fields();
    $this ->init_settings();

    $this->title = $this->settings['title'];
    $this->description = $this->settings['description'];
    $this->api_pardano = $this->settings['api_pardano'];
    $this ->redirect_page_id = $this ->settings['redirect_page_id'];

    $this ->msg['message'] = "";
    $this ->msg['class'] = "";

    add_action('woocommerce_api_' . strtolower( get_class( $this ) ), array( $this, 'check_pardano_response' ) );
    add_action('valid-pardano-request', array($this, 'successful_request'));

    if ( version_compare( WOOCOMMERCE_VERSION, '2.0.0', '>=' ) )
    add_action( 'woocommerce_update_options_payment_gateways_pardano', array( &$this, 'process_admin_options' ) );
    else
    add_action( 'woocommerce_update_options_payment_gateways', array( &$this, 'process_admin_options' ) );

    add_action('woocommerce_receipt_pardano', array(&$this, 'receipt_page'));
    }

    function init_form_fields()
    {
    $this ->form_fields = array(
    'enabled' =>array(
    'title' =>'فعال سازی/غیر فعال سازی :',
    'type' =>'checkbox',
    'label' =>'فعال سازی درگاه پرداخت پردانو',
    'description' =>'برای امکان پرداخت کاربران از طریق این درگاه باید تیک فعال سازی زده شده باشد .',
    'default' =>'no'),
    'api_pardano' =>array(
    'title' =>'API درگاه : ',
    'type' =>'text',
    'description' =>'شناسه درگاه api خود را وارد نمایید . <br><a target="_blank" href="http://pardano.com/p/d/listgateway">مشاهده api درگاه شما</a>'),
    'title' =>array(
    'title' =>'عنوان درگاه :',
    'type'=>'text',
    'description' =>'این عتوان در سایت برای کاربر نمایش داده می شود .',
    'default' =>'درگاه پرداخت پردانو'),
    'description' =>array(
    'title' =>'توضیحات درگاه :',
    'type' =>'textarea',
    'description' =>'این توضیحات در سایت، بعد از انتخاب درگاه توسط کاربر نمایش داده می شود .',
    'default' =>'پرداخت وجه از طریق درگاه پردانو توسط تمام کارت های عضو شتاب .'),
    'redirect_page_id' =>array(
    'title' =>'آدرس بازگشت',
    'type' =>'select',
    'options' =>$this ->get_pages('صفحه مورد نظر را انتخاب نمایید'),
    'description' =>"صفحه‌ای که در صورت پرداخت موفق نشان داده می‌شود را نشان دهید."),
    );
    }

    public function admin_options()
    {
    echo '<h3>'.__('درگاه پرداخت پردانو', 'pardano').'</h3>';
    echo '<p>'.__('درگاه پرداخت اینترنتی پردانو').'</p>';
    echo '<table class="form-table">';
    $this ->generate_settings_html();
    echo '</table>';
    }

    function receipt_page($order_id)
    {
    global $woocommerce;
    $order = new WC_Order($order_id);
    $redirect_url = ($this ->redirect_page_id=="" || $this ->redirect_page_id==0)?get_site_url() . "/":get_permalink($this ->redirect_page_id);
    $redirect_url = add_query_arg( 'wc-api', get_class( $this ), $redirect_url );
    unset( $woocommerce->session->zegersot );
    unset( $woocommerce->session->zegersot_id );
    $woocommerce->session->zegersot = $order_id;

    $errorCode = array(
    -20=>'api نامعتبر است' ,
    -21=>'آی پی نامعتبر است' ,
    -22=>'مبلغ از کف تعریف شده کمتر است' ,
    -23=>'مبلغ از سقف تعریف شده بیشتر است' ,
    -24=>'مبلغ نامعتبر است' ,
    -6=>'ارتباط با بانک برقرار نشد' ,
    -26=>'درگاه غیرفعال است' ,
    -27=>'آی پی شما مسدود است' ,
    -9=>'خطای ناشناخته' ,
    -29=>'آدرس کال بک خالی است ' ,
    -30=>'چنین تراکنشی یافت نشد' ,
    -31=>'تراکنش انجام نشده ' ,
    -32=>'تراکنش انجام شده اما مبلغ نادرست است ' ,
    //1 =>"تراکنش با موفقیت انجام شده است " ,
    );

    $amount = round($order ->order_total);

    $items_list = NULL;
    foreach ($order->get_items() as $item)
    {
    if(isset($items_list))
    $items_list .= "-" . $item['name'];
    else
    $items_list = $item['name'];
    }

    $api = $this ->api_pardano;
    $redirect_url = $redirect_url . '&order_id=' . $order_id;
    $client = new SoapClient("http://pardano.com/p/webservice/?wsdl");
    $result = $client->requestpayment($api, $amount, $redirect_url, $order_id, urlencode($items_list));
    if($result >0 && is_numeric($result))
    {
    $woocommerce->session->zegersot_id = $result;
    header("location: http://pardano.com/p/payment/{$result}");
    exit;
    }
    else
    echo "خطا ({$result}) : " . $errorCode[$result];
    }

    function process_payment($order_id)
    {
    $order = &new WC_Order($order_id);
    return array('result' =>'success', 'redirect' =>$order->get_checkout_payment_url( true ));
    }


    function check_pardano_response()
    {
    global $woocommerce;
    $order_id = $_GET['order_id'];
    $order = &new WC_Order($order_id);
    $api = $this ->api_pardano;
    $amount = round($order ->order_total);

    $au = $_GET["au"];
    if(!empty($au))
    {
    $client = new SoapClient("http://pardano.com/p/webservice/?wsdl");
    $result = $client->verification($api, $amount, $au);
    if( ! empty($result) and $result == 1)
    {
    $this ->msg['message'] = "پرداخت شما با موفقیت انجام شد";
    $this ->msg['class'] = 'woocommerce_message';
    $order ->payment_complete();
    $order ->add_order_note($this->msg['message']);
    $order ->add_order_note('پرداخت انجام شد<br/>کد پیگیری : '.$au);
    $woocommerce ->cart ->empty_cart();
    wp_redirect( add_query_arg( 'wc_status', 'success', $this->get_return_url( $order ) ) );
    exit;
    }
    else
    {
    $this ->msg['class'] = 'woocommerce_error';
    $this ->msg['message'] = "خطا ({$result}) : {$errorCode[$result]}";
    $order ->add_order_note('پرداخت ناموفق');
    $order ->add_order_note($this ->msg['message']);
    }
    }
    else
    {
    $this ->msg['class'] = 'woocommerce_error';
    $this ->msg['message'] = "پرداخت ناموفق";
    $order ->add_order_note('اطلاعات ارسالی صحیح نمیباشد .');
    $order ->add_order_note($this ->msg['message']);
    }

    $redirect_url = ($this ->redirect_page_id=="" || $this ->redirect_page_id==0)?get_site_url() . "/":get_permalink($this ->redirect_page_id);
    $redirect_url = add_query_arg( array('msg'=>base64_encode($this ->msg['message']), 'type'=>$this ->msg['class']), $redirect_url );
    wp_redirect( $redirect_url );
    exit;
    }

    function get_pages($title = false, $indent = true)
    {
    $wp_pages = get_pages('sort_column=menu_order');
    $page_list = array();
    if ($title) $page_list[] = $title;
    foreach ($wp_pages as $page)
    {
    $prefix = '';
    if ($indent)
    {
    $has_parent = $page->post_parent;
    while($has_parent)
    {
    $prefix .= ' - ';
    $next_page = get_page($has_parent);
    $has_parent = $next_page->post_parent;
    }
    }
    $page_list[$page->ID] = $prefix . $page->post_title;
    }
    return $page_list;
    }
    }

    function woocommerce_add_pardano_gateway($methods)
    {
    $methods[] = 'WC_full_pardano';
    return $methods;
    }
    add_filter('woocommerce_payment_gateways', 'woocommerce_add_pardano_gateway' );
    }

    if($_GET['message']!='')
    {
    add_action('the_content', 'showMessage');

    function showMessage($content)
    {
    return '<div class="'.htmlentities($_GET['class']).'">'.base64_decode($_GET['message']).'</div>'.$content;
    }
    }
    ?>

افزودن پاسخ

 سوال قبلی

سوال بعدی