رفتن به مطلب

HANNANStd

عضو سایت
  • تعداد ارسال‌ها

    316
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    8

نوشته‌ها ارسال شده توسط HANNANStd

  1. سلام.

    من سه تا آرایه دارم.


    $tabs = array('1' => 'یک','2' => 'دو','3' => 'سه',);
    $sub1 = array('1-1' => '1-1','1-2' => '1-2');
    $sub2 = array('2-1' => '2-1','2-2' => '2-2');

    یک

    1-1

    1-2

    دو

    2-1

    2-2

    سه

    3-1

    3-2

    .

    .

    .

    برای این خروجی شما کد های زیادی میشه نوشت .. مثلا اگه فقط خروجی بالا مد نظر باشه کد زیر ساده ترینه :


    <?php
    header('Content-Type: text/html; charset=utf-8');
    $tabs = array('1'=>'یک' , 2=>'دو' , 3=>'سه');

    foreach ( (array) $tabs as $tabs_key => $tabs_val ) {

    echo $tabs_val. '<br/>';

    for ( $i=1; $i <=2; $i++ ) {

    echo $tabs_key.'-'.$i.'<br/>';

    }

    }

    اما برای آرایه تو در تو اگه بخواید ؛ کد زیر هم همون کار رو میکنه و مثل کد خودتون باید sub1 sub2 sub3 ......... رو بهش وارد کنید :


    <?php
    header('Content-Type: text/html; charset=utf-8');
    $tabs = array('1'=>'یک' , 2=>'دو' , 3=>'سه');
    $sub1 = array('1-1' => '1-1', '1-2' => '1-2');
    $sub2 = array('2-1' => '2-1', '2-2' => '2-2');
    $sub3 = array('3-1' => '3-1', '3-2' => '3-2');

    foreach ( (array) $tabs as $tabs_key => $tabs_val ) {
    echo $tabs_val. '<br/>';
    $i=1;
    while ( !empty (${'sub'.$i}) ) {
    foreach ( (array) ${'sub'.$i} as $sub1_key => $sub1_val ) {
    list( $a , $b ) = explode( '-' , $sub1_val);
    if ( $a == $tabs_key ) {
    echo $sub1_val.'<br/>';
    }
    }
    $i++;
    }
    }

    • امتیاز 1
  2. فرمایشات شما متین و قابل قبوله

    ولی آیا شما حاضری 70 دلار (حدودا یه 250 هزار تومنی میشه) بدی به یه کشور خارجی و اون کشور که در حال تحریم ماست رو تقویت کنی ؟

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

    دوست عزیز شما خودت داری به وب ایران ضربه شدیدی میزنی ..... طراحی سایت 30 هزار تومن آخه ؟؟؟؟!!

    • امتیاز 4
  3. سلام .

    نسخه 3 افزونه پیامک ووکامرس منتشر شد و خوشحالم که افتخار این رو داشتم که در این افزونه بتونم خدمت کوچکی به شما وردپرس کاران عزیز کنم .

    در این نسخه امکانات و ویژگی های زیادی اضافه شده و سعی شده به اکثر نیازهایی که تو ورژن قبلی مطرح شده بود پاسخ داده باشه .

    قابل ذکر هست که این نسخه فعلا بتا بوده و وجود باگ طبیعی میباشد . پس در صورت کشف و مشاهده ما را جهت رفع آن ها با خبر سازید .

    جهت دانلود و مشاهده امکانات و ویژگی های جدید به انجمن ووکامرس پارسی مراجعه نمایید :

    صفحه افزونه در انجمن ووکامرس

    • امتیاز 1
  4. ببینید اینکه php بلد نیستید یکم لقمه بزرگی برداشتید چون برای کار با این اسکریپت با فریمورک یی نوشته شده باید با معماری MVC هم آشنایی داشته باشید .... خب منم که فرصت نمیکنم از شما اسکریپتشو بگیرم و نصبش کنم ولی راهنماییتون میکنم یکم تلاش کنید راحت به نتیجه میرسید ....

    اول از همه شما باید متغیر هایی که تو برگشت از بانک لازم دارید رو به سمت بانک بفرستید و در برگشت از بانک ازش پس بگیرید ... پس به صورت زیر کوئری میکنیم . ( باید جایگزین متغیر redirect تو فایل ارسال به بانک کنید)


    //باید متغیر های مورد نظر در برگشت رو به صورت کوئری بفرستید و بعدش هم پس بگیرید .
    $redirect = $notifyUrl.'?custom='.$customVars.'&price='.$amount;
    //یا میتونید سشن کنید که کوئری بهتره به نظرم

    الان ما 2 متغیر custom و قیمت رو میفرستیم برای بازگشت از بانک ...

    خب کد زیر هم با فرض اینکه اون کدی که گذاشته بودید توی پست اول واقعا کد های بررسی برگشت باشه و اشتباه نکرده باشید باید به صورت زیر استفاده کنید :


    <?php
    class Payment_gateway_ext_paypalController extends Controller
    {
    // the extension instance
    public $extension;

    /**
    * Process the IPN
    */
    public function actionIpn()
    {
    if (!Yii::app()->request->isPostRequest) {
    $this->redirect(array('price_plans/index'));
    }

    $postData = Yii::app()->params['POST'];
    /*
    if (!$postData->itemAt('custom')) {
    Yii::app()->end();
    }
    */


    // بررسی وضعیت تراکنش توسط پی لاین
    $apiID = ''; //api پی لاین
    $Amount = $_GET['price'];
    $url = 'http://payline.ir/payment/gateway-result-second';
    $id_get = isset($_POST['id_get']) ? $_POST['id_get'] : $postData->itemAt('id_get');
    $trans_id = isset($_POST['trans_id']) ? $_POST['trans_id'] : $postData->itemAt('trans_id');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "api=$apiID&id_get=$id_get&trans_id=$trans_id");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    curl_close($ch);
    if ($res == 1) {
    // تراکنش موفق است
    $stat = 'completed';
    $transaction_id = $trans_id;
    $fault = 0;
    }
    else if ( $res == -1 || $res == -2 || $res == -3 ) {
    // تراکنش ناموفق است
    $stat = 'failed';
    $transaction_id = $trans_id;
    $fault = $res;
    }
    else {
    // تراکنش انصرافی کاربر است
    $stat = 'cancelled';
    $transaction_id = $trans_id;
    $fault = 0;
    }
    // اتمام بررسی وضعیت پی لاین


    // فراخونی کوئری custom
    $custom = $_GET['custom'];

    //پیدا کردن تراکنش از روی custom
    $transaction = PricePlanOrderTransaction::model()->findByAttributes(array(
    'payment_gateway_transaction_id' => $custom,
    'status' => PricePlanOrderTransaction::STATUS_PENDING_RETRY,
    ));


    if (empty($transaction)) {
    Yii::app()->end();
    }

    $newTransaction = clone $transaction;
    $newTransaction->transaction_id = null;
    $newTransaction->transaction_uid = null;
    $newTransaction->isNewRecord = true;
    $newTransaction->date_added = new CDbExpression('NOW()');
    $newTransaction->status = PricePlanOrderTransaction::STATUS_FAILED;
    $newTransaction->payment_gateway_response = print_r($postData->toArray(), true);
    // $newTransaction->payment_gateway_transaction_id = $postData->itemAt('txn_id');

    $newTransaction->payment_gateway_transaction_id = $transaction_id;



    $model = $this->extension->getExtModel();
    $postData->add('cmd', '_notify-validate');
    $request = AppInitHelper::simpleCurlPost($model->getModeUrl(), $postData->toArray());

    /*
    if ($request['status'] != 'success') {
    $newTransaction->save(false);
    Yii::app()->end();
    }
    */


    // $paymentStatus = strtolower(trim($postData->itemAt('payment_status')));
    // $paymentPending = strpos($paymentStatus, 'pending') === 0;
    // $paymentFailed = strpos($paymentStatus, 'failed') === 0;
    // $paymentSuccess = strpos($paymentStatus, 'completed') === 0;

    // $verified = strpos(strtolower(trim($request['message'])), 'verified') === 0;
    // $sameEmail = $postData->itemAt('receiver_email') == $model->email;
    $order = $transaction->order;

    // اگر تراکنش از قبل تکمیل شده بود که هیچی بیخیال ولی .....
    if ($order->status == PricePlanOrder::STATUS_COMPLETE) {
    $newTransaction->save(false);
    Yii::app()->end();
    }


    // if (!$verified || !$sameEmail || $paymentFailed) {


    // اگر وضعیت پی لاین ناموفق بود ... وضعیت ناموفق رو ثبت کن
    if ( $stat == 'failed') {
    $order->status = PricePlanOrder::STATUS_FAILED;
    $order->save(false);

    $transaction->status = PricePlanOrderTransaction::STATUS_FAILED;
    $transaction->save(false);

    $newTransaction->save(false);

    Yii::app()->end();
    }

    // if ($paymentPending) {


    // اگر وضعیت پی لاین کنسل شده بود همونطوری تو وضعیت پندینگ بمونه
    if ( $stat == 'cancelled') {

    $newTransaction->status = PricePlanOrderTransaction::STATUS_PENDING_RETRY;
    $newTransaction->save(false);
    Yii::app()->end();
    }


    /// اگر هیچ کدوم از وضعیت های بالا نبود پس موفق بوده ... موفق بودنش رو ثبت کن ..
    $order->status = PricePlanOrder::STATUS_COMPLETE;
    $order->save(false);

    $transaction->status = PricePlanOrderTransaction::STATUS_SUCCESS;
    $transaction->save(false);

    $newTransaction->status = PricePlanOrderTransaction::STATUS_SUCCESS;
    $newTransaction->save(false);
    Yii::app()->end();
    }
    }

    سعی کردم قسمت های مختلفشو توضیح بدم روی کد که راحت تر به نتیجه برسید ..

    موفق باشید .

    • امتیاز 2
  5. سلام . آها شما دارید از روش form اچ تی ام ال انجام میدید که نمیشه . باید از طریق وبسرویس انجام بدید ... که البته کاری نداره .. اگه توی سایتتون امکان ایجاد فایل php رو دارید بگید من یه کد php با همین فرم براتون درست میکنم .

    یعنی به این صورت که نیاز هست شما 2 تا فایل php رو که بهتون بدم بتونید در یک جایی قرار بدید . اولی اطلاعات این فرمتون رو به فایل php اولی پست میکنیم بعدش ازونجا به وبسرویس متصل میشیم و بعدش هم برمیگردیم به فایل php دوم و از اونجا بسته به وضعیت تراکنش به آدرس مورد نظرتون هدایت میشه .

    • امتیاز 1
  6. دوست عزیز شما کوئری custom پی پال رو با چه متغیری جایگزین کردید و به بانک فرستادید ؟

    چون یکی از قسمت های اصلی کد برگشت شما مربوط به کد زیره :


    $transaction = PricePlanOrderTransaction::model()->findByAttributes(array(
    'payment_gateway_transaction_id' => $postData->itemAt('custom'),
    'status' => PricePlanOrderTransaction::STATUS_PENDING_RETRY,
    ));

    یعنی وقتی از بانک بر میگرده میخواد اول تراکنش مربوطه که وضعیتش pending هست رو از روی $_POST['custom'] پیدا کنه و بعدش بیاد از روی وضعیت پی لاین تراکنش رو یا رد کنه یا تایید کنه ... فایل ارسال به بانک رو هم بذارید .

    • امتیاز 2
  7. سلام . اگه اشتباه نکنم باید برای سایت wle.ir باشه .. ببینید شما با افزونه های vip نظیر restrict content pro میتونید همچین سایتی بزنید ولی نباید انتظار داشته باشید با نصب افزونه همه چی خودکار انجام بشه . این افزونه ها یه سری توابع php یا شورت کد در اختیارتون میذارن که باید تو قالب اعمالشون کنید .

    مثلا برای همون قسمتی که نوشته ارسال نظر برای مطالب vip شما باید توسط توابع restrcit content pro بیاید و دور کد های comment شرط بذارید فقط اعضای vip بتونن .

  8. با سلام

    من یک افزونه نوشتن و بعد از ثبت در مخزن و تایید شدن آن لینک svn آن برایم ارسال شد حال با استفاده از برنامه TortoiseSVN اقدام به ارسال فایل ها میکنم ولی مشکلی که هست همش بهم پیغام زیر رو میده در حالی که طبق آموزش که در سایت بود http://wp-parsi.com/...-wordpress-org/ این کار رو انجام دادم ولی باز پیغام زیر رو میده بهم از دوستان اگر کسی علتش میدونه ممنون میشم راهنمایی کنه

    jd7s_1.png

    سلام . کاش مورد رو میگفتید تا دوستان هم در صورت برخورد بتونن به جواب برسن . این مشکل واسه اینه که قبل از زدن دکمه ثبت باید تو قسمت comment حداقل یه توضیحی بنویسید و اگه خالی باشه این مشکل پیش میاد .

    خب لینک افزونه تون رو هم میذاشتیم استفاده کنیم.

    • امتیاز 3
  9. ممنون از هر دو دوست عزیز

    در ضمن کد هم کار کرد

    ولی کسی نمیدونه چرا افزونه related posts این مشکل رو داره؟!

    مشکل نیست ! اتفاقا یک چیز روتین هست . منم از کدی مثل کدی که دوستمون بالا گذاشتن توی سایتهام استفاده میکنم ولی خودم order رو به صورت rand میذارم توش .

    • امتیاز 2
  10. دوست عزیز احتمالا کوئری هاشو جوری نوشتن که مطالب مرتبط رو میاره ولی هر بار به صورت رندم میاره ... مثلا 10 تا پست هستند که با این مطلب شما از نظر دسته یا برچسب و .. مرتبط هستند . دفعه اول که این 10 تا رو آورد ، دفعه دوم هم همین 10 تا رو با چینش متفاوت میاره و الی آخر ...

    • امتیاز 2
  11. اول توی .httaccess نگاه کن ببین اثری از

    siteN.com

    هست یا نه . اگه نبود پس تو دیتابیسته .

    این رو بنصب :

    https://wordpress.or...ve-update-urls/

    بعدش برو توی ابزار ها >> Go URL همه تیک های دیتابیس رو بزن . توی old url آدرس

    siteN.com

    رو بزن و توی new url هم آدرس :

    site.com

    رو .

    • امتیاز 1
  12. پیش نهاد میکنم از این شکل پوسته ها استفاده نکنید.

    خطا مربوط به فایل forum.php هستش

    زحمت کشیدید ! اصلا معلوم نبود !

    -----------------------------------------------------------------------------------------------------------

    اما جواب سوال :

    دوست عزیز یک فایل به اسم forum.php باید داخل پوشه قالبتون وجود داشته باشه که گویا حذف شده . اگه داریدش برش گردونید اگرم نداریدش و میبینید که اختلالی توی سایت ایجاد نمیکنه بهتره خط 9 فایل index.php رو باز کنید و کد زیر رو از توش حذف کنید :


    include_once( get_template_directory() . '/forum.php' );

    البته چون معمولا سایت 20 اسکریپت آخرین ارسالی های انجمنش رو توی سایتش نشون میده بنده هستم میزنم اون forum.php هم فایل مربوط به آخرین ارسالی های انجمن باشه .

    در ضمن احتمالا قبلا هم این مشکل توی سایت شما وجود داشته ولی حالت debug روی false بوده که نشون نمیداده .

×
×
  • اضافه کردن...